Balanced group generator

This web application divides a number of members into groups, so that each group have a balanced distribution regarding on multiple attributes simultaneously.

What makes our tool different from others is that there is few online tool which can take multiple attributes into considerations. For example, a teacher wants to make students' groups where each group has almost equal sex ratio while average scores are well distributed across groups. Finding an optimal balance might be challenging even for a human.

This online tool finds a balanced grouping with respect to multiple attributes by running an optimization, where its objective is to make the distribution of each group as similar as possible with the whole members' distribution. For more detailed usage, click here 🤖

Toggle attributes to build member list. You can modify or add custom attributes.

Hometown
Gender
Age
New attribute

Add, delete, modify member list.

Member idGenderAge
Count
Male : 0
Female : 0
10s : 0
20s : 0
20s : 0

  • Select a number of groups (should be larger than 1 and smaller than 0)
    3 groups
Perform grouping !

Still no result :(
Press the above button 👆

How to use this web application🤨

1. Register members to be grouped

For the balanced grouping, you need to construct a member table where rows are member indices and the columns are options chosen for attributes.
First step is to define an attribute which consist of 1) name and 2) option list. For example, we can create an attribute with name 'gender' which has 'male' and 'female' as the option list. To have a valid attribute, you have to decide at least two options. Once an attribute is created, you can always modify the name and option list by clicking button ` . We can toggle or untoggle to apply the attribute into our member table.
Second step is compose the member table by adding member . This creates a new member by randomly choosing options of applied attributes. You can edit the options by drop-down selector. You can remove each member by clicking .

2. Grouping setup and result

Suppose we have built a list consisting of 8 members, considering two attributes: gender and ages. Assuming the members have 6 males and 2 females in gender attribute, and 4 members of their 10s and 4 members of 20s respectively. On top of this, let us we need to divide them into 2 groups in a balanced way.
An ideal grouping would result in 3 males (=(6 males) / (2 groups)) and a single female (=(2 females) / (2 groups)), totaling 4 members per a group. At the same time, it might have 4 teens (=(4 10s) / (2 groups)) and 4 twenties (=(4 20s) / (2 groups)).
Under the hood of our application, a genetic algorithm is running to find grouping which efforts to match the ideal distribution as best as possible. Enjoy your grouping and give me any question by email 👇.