Back to guides
Workshop rotation guideUpdated July 22, 20264 min read

How to avoid repeat pairings in workshops

A good rotation is planned as one schedule, not as a stack of independent shuffles. Start with the number of conversations each person can realistically have, then add only the workshop rules that matter enough to reduce that freedom.

A confused facilitator tries to untangle workshop table rotations while group cards and discussion tables swirl around the room.

Guide visual

Fresh table rotations

Repeated rounds with fewer repeated pairings.

24 peoplegroups of 4avoid repeats

Decide what a successful rotation means

“No repeats” is only one possible goal. Write down the priorities in order before generating anything.

  • Choose the number of rounds and the preferred group size from the activity format, not from a desire to force a perfect schedule.
  • Decide whether every participant should meet new people, whether roles should be spread, or whether both matter.
  • Identify genuine requirements such as fixed facilitators or prohibited pairings. Everything else should remain a preference.
  • Plan for attendance changes. A schedule built for 24 people no longer has the same repeat properties when 3 people are absent.

Build the complete rotation together

Generate all workshop rounds in the same scenario so later rounds can be evaluated against the earlier ones.

  1. Clean the participant list

    Use one row per person and remove duplicates. Add an attribute only when it changes a real facilitation decision.

  2. Set groups and rounds

    Choose people per group when conversation size matters; choose a group count when rooms or table hosts are fixed. Then set the complete number of rounds.

  3. Enable repeat minimization

    Keep the rounds in one solve. Generating each round separately discards the encounter history that the objective needs.

  4. Add requirements sparingly

    Fix hosts or add together/apart rules only when violating them would make the workshop unusable. A keep-together rule deliberately creates repeated contact.

  5. Generate and inspect

    Check capacities and requirements first. Then inspect repeated pairings and whether one participant carries more repeats than the rest.

  6. Revise the model, not just the roster

    If the result is poor, remove an unnecessary rule, change group size, or reduce rounds. Manual swaps can repair one pair while creating several others.

Read the repeat pattern, not just the score

  • The Pair Meeting Histogram shows the shape of repetition across the whole workshop. “Repeated” counts distinct pairs that shared more than one session, while the bars reveal whether those repeats stop at two meetings or keep accumulating.
  • The Pair Meeting Matrix explains the outliers behind that distribution. A selected cell names the pair, lists their shared sessions, and shows pair-local objective cost and together/apart context.
  • A high count with required-together context is an intended consequence of the scenario. A high count without that explanation is a useful reason to compare a shorter rotation, another group size, or a version with an unnecessary rule removed.
  • Unique Contacts and Repetition Penalty help compare candidate schedules only when roster, groups, rounds, and scoring settings are identical. Across different setups, the totals answer different questions.
  • The session rosters under Your groups remain the operational truth: they are what the event producer should inspect and export.

Worked example: four workshop rounds

The embedded scenario has 24 people in groups of 4 across four rounds. Each person has 12 contact slots, fewer than the 23 other participants, so the basic arithmetic does not force a repeat. The added rules still matter.

Setup facts

  • 24 participants, groups of 4, 4 rounds
  • roles balanced across tables where possible
  • Maya Chen and Owen Brooks required together
  • two prohibited pairings

Review the result

  • Maya and Owen must repeat each other because the together rule spans the rotation.
  • Check whether role balance displaced fresh contacts elsewhere.
  • Remove the together rule if it is only a preference, then compare the repeat distribution.

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
24
Groups
6
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.
Role
Automatic targets · All sessions
Groups 1-6Drag 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 reports

Related guides