Back to guides
Attribute-aware classroom setupUpdated July 22, 20263 min read

How to make balanced student groups

Balance is useful only when it serves the activity. Choose one defensible, task-specific attribute, keep private judgments out of the published roster, and check the resulting distribution instead of trusting the word “balanced.”

A teacher balances student cards and skill tokens on a large classroom scale while students watch.

Guide visual

Balanced project groups

Students spread by useful classroom attributes.

28 studentsgroups of 4skill balance

Choose the attribute before choosing the control

  • Write down why this activity benefits from complementary knowledge, comparable preparation, or a spread of roles.
  • Prefer observable, temporary information such as a chosen topic, completed prerequisite, or self-selected role.
  • Use categorical balance for category distributions and numeric attribute sums for totals such as an independently justified rating.
  • Avoid diagnoses, disability, behavior reputation, family circumstances, or informal staff judgments.
  • If the attribute would not change a decision, do not collect it.

Configure and review balanced groups

  1. Set the class and group shape

    Confirm attendance, group count or size, and any unavoidable smaller group before adding balance goals.

  2. Import one useful field

    Give the attribute a neutral name and use consistent values. The preloaded example uses a self-selected project role rather than a judgment about ability.

  3. Choose the matching preference

    Use Attribute Balance for categories. Use Attribute Sum only for meaningful numeric values whose totals should be distributed.

  4. Separate requirements from preferences

    Fixed assignments and must-stay rules are hard requirements. Balance is a best-effort preference and should not be described as guaranteed.

  5. Generate privately

    Review group composition before showing students. Remove private columns from participant-facing exports or screenshots.

  6. Evaluate the decision

    Compare the per-group counts with the arithmetic target and ask whether the attribute improved the activity rather than merely making the roster look orderly.

Trace a balance claim back to the actual groups

  • The assigned count and capacity under Your groups reveal uneven group sizes immediately; the balance score does not.
  • The Attribute Balance card turns an aggregate penalty into something reviewable: each deviation names the session, group, category, desired count, and actual count.
  • Required fixed, together, and apart rules are solver invariants. Their cards report “No violations” in a valid result; anything else is a solver defect to report, not a compromise for the teacher to repair.
  • Across several sessions, the Pair Meeting Matrix can expose repeated classmates. It cannot show who felt isolated, carried the work, or needed support; those remain human review questions.
  • Assignment-only exports are suitable for sharing only after the downloaded or copied result has been checked for private attributes and reasons for constraints.

Worked example: seven project groups

The preloaded example has 28 students and seven groups of four. Its self-selected Project role column contains 7 Research, 14 Synthesis, and 7 Presentation choices, so a 1/2/1 category mix per group is arithmetically possible before relationship and fixed-assignment rules are considered.

Setup facts

  • 28 students in groups of 4
  • one synthetic categorical balance field
  • one together pair and two apart pairs
  • two fixed assignments

Review the result

  • Compare each group with the possible 1 Research / 2 Synthesis / 1 Presentation distribution.
  • Confirm all hard relationship and fixed rules separately.
  • Confirm the role choices are current, self-described, and useful for this project—or remove the field.

Try this setup in GroupMixer

This tool is preloaded with the example from this guide. You can edit the participants, constraints, sessions, and balance settings before generating groups.

Enter one person per line in the first column. Optionally, add attribute columns such as gender, role, or skill-level on the right. Those attributes can then be used to balance groups and set additional rules.
Name
Use 1 session for a single round of groups. Increase sessions when you want multiple rounds with new group assignments for the same people.
People
28
Groups
7
Approx size
4
Force specific people into the same group in every session. Write one "clique" per line, with names separated by commas. Example: "Alex, Sam" keeps Alex and Sam together.
Prevent selected people from being placed in the same group. Write one set per line; everyone on a line is kept mutually apart. Example: "Alex, Sam, Jordan" keeps all three separated.
Pin specific people to a specific group across all sessions. Enter one name and one group number per row. This is useful for leaders, presenters, or anyone who must stay in a known group.
Name
Group
Set target counts for each attribute value inside each group. Keep auto distribute enabled for fair automatic targets, or edit the counts manually when you need exact control.
Project role
Automatic targets · All sessions
Groups 1-7Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Drag the handles in the bar to adjust the distribution, or edit the numbers next to the labels manually. A 0-target attribute is still active: the solver tries to keep that value out of the group. A non-allocated attribute is ignored by this balance target. Toggle an attribute on or off by clicking its label in the legend or bar.
Need even more control?
  • Partial attendanceSet which participants attend which sessions instead of assuming everyone is present every round.
  • Custom group capacitiesGive each group its own capacity and override those capacities for specific sessions when room sizes or staffing change.
  • Session-specific constraintsApply scoped rules only where they matter, then use global objectives such as Avoid Repeats for whole-schedule quality.
  • Weighted preferencesAdd preferences that can be violated when needed, then tune their weights relative to other goals.
  • Encounter targetsTarget how often selected people should all meet across the schedule, including exact, minimum, or maximum encounter counts.
  • Group visit targetsControl how often selected people visit selected groups across sessions for station rotations, task exposure, or visit caps.
  • Advanced constraint tuningFine-tune repeat limits, attribute-balance modes, penalties, and other constraint details beyond the landing-page controls.
  • Solver settingsAdjust runtime limits, deterministic seeds, solver family, and other optimization settings.
  • Result analysisInspect score breakdowns, constraint compliance, penalties, and saved results in more detail.
Quick Setup and the scenario editor use the same saved scenario. Settings hidden here remain intact.

Related guides