Setting league groupings

Heyo. I am starting a local league and need help finding a software that will pick the 4 player groups each month. I have 20 people in the league and I will need the program to select random 4 player groups, but I want subsequent month’s groupings to have no repeat pairings until everyone in the league has played each other at least once.

I found some round robin tennis calculators online, but this isn’t full proof as I can only pick two player groups (doubles).


Will attendance be consistent? (i.e. should all players be chosen all meetings?)

If so, I can knock together something quick-and-dirty for you tomorrow if someone doesn’t appear something. If the people that aren’t around shouldn’t be picked in a given month, it’s a much harder problem.

It is definitely possible that some people will not show up in a given month, so I know that is a limitation in any solution I choose. So what I wanted to do is set the groupings for all sessions now, then adjust for the people that are not going to be there on the fly and do my best to have the most diverse groupings as possible.

20 people into 5, 4 player groups. I need groupings for 4 sessions. I also realize that in just 4 sessions everyone cannot play everyone, but I would just roll this over into the next season too.

Thanks for the help!

If you’re saying that no individual can play with another individual twice until everyone has played with everyone once, I think you’ll find that this isn’t possible.

Actually, I think it is possible, given that he also said there are only four sessions. It would be impossible to do a full round robin this way because there are 19 opponents and you play 3 at a time.


Pretty sure he didn’t say that.

Right it won’t be possible, but since we are only doing 4 sessions, I think it should work. I realize that I cannot have a full round robin with the set up I have, I just want to have it so it doesn’t have repeat opponents until it’s necessary. I hope that makes sense.

So another question I would have is how would you guys suggest doing pairings? This is a very casual league and I just want people to have a chance to play with everyone else to help everyone get to know each other better. Since we only have 4 sessions it might take until sometime next season to accomplish this though if I keep running the same setup.

Steve: he did say precisely that. But thanks! :slight_smile:


I was only looking at his original post, in case anyone’s wondering what my problem was.


Shameless plug:

Setup each league season as a single tournament (each league night being a single “round” in that tournament. Use “balanced” player pairings and you’ll get what you want – you may still end up with some repeats just because this is a hard problem to solve when not all players are showing up for every league night.


I’ll check this out. Thanks! is really good with group play. We used it not too long ago for a 40 player tourney with approx. 29 pins and it did an excellent job of putting players with as few repeats as possible.

While I remember: The player pairing and arena selection code that Match Play uses is available as open source here:

So if you want to generate groups with few repeats but you don’t want to use Match Play to run your tournament you can use the same underlying code that Match Play uses (or just look at it for inspiration). Provided you know how to do some programming in PHP of course.


But really you should just use MatchPlay because it is amazing and will make your life so much easier!

1 Like

I’ll also make a shameless plug for the FSPA League Manager, which is specifically designed for running leagues. We actually don’t have an existing “maximize unique opponents” grouping scheme, but if the software looks like something you’d like to adopt, it’d give me an excuse to write that logic. :smiley: As @haugstrup mentioned, it’s actually a surprisingly difficult problem, especially when players semi-randomly come and go from meet to meet.