How to assign students to electives or workshops by ranked preference
To assign students to electives or workshops by ranked preference, ask each student for a first, second and third choice, give every session a seat limit, then seat as many first choices as you can, then second, then third. A spreadsheet can do this for one class. The worked example below places 54 students in 6 electives by hand and with Solve.
By Sortround. Published 5 November 2026.
Can you fill an elective, then move students to their next choice?
Yes. Someone planning a school-wide event asked almost exactly this on Microsoft's Excel forum in December 2022: every student picks four activities, each activity has a maximum, and the question is how to fill one and move students on to their next option until all have a place. In the Instructure Community in April 2024, a member asks whether other institutions use a tool to match students on ranked preferences, because Canvas has none built in. And a teacher's blog post from May 2016 makes the case against the usual habit: letting students pick first come, first served does not make sure each one gets a top preference.
The manual method
- Collect the choices. One form with three questions: first, second and third choice. Set a closing date and say the time you answer does not matter.
- Count the demand. Put one student on a row with their three choices, then count first choices per elective with
=COUNTIF(B:B,"Robotics"). If an elective has seats for all who put it first, they are in. - Draw for the full ones. Add a column of
=RAND(), sort by it, and seat students from the top until the seats run out. Say beforehand that this is how ties are settled. - Move on a choice. Take everyone still without a place, in the same order, and seat them in their second choice if it has a seat. Then do the same with third choices.
- Talk to whoever is left. They missed all three, so seat them by hand where there is room.
For one class with one popular elective and seats to spare, stop here. It takes an evening at most, you can explain every step, and you do not need a tool.
Where it slips
- Going down the list rewards the top of the list. A formula that takes each row in turn, which is what the forum question describes, fills the popular electives with whoever happens to be early, and a student near the bottom can find all three choices full.
- The draw decides more than it needs to. When Robotics is full, some of the students who put it first have a second choice with seats and some do not. A draw cannot see that. Which students stay changes how many of the others keep a choice they asked for.
- It does not survive a change. A late form or a cancelled elective means starting the sheet again.
Worked example: 54 students, 6 electives
54 seats for 54 students, so every seat has to be used, and each student ranks 3 electives. The rankings are invented for this page. The counts come from the solver the site runs and from two plain hand methods run in code.
| Elective | Seats | Put it first | Placed by Solve |
|---|---|---|---|
| Robotics | 10 | 16 | 10 |
| Cooking | 10 | 12 | 10 |
| Drama | 10 | 9 | 10 |
| Photography | 8 | 8 | 8 |
| Ceramics | 8 | 6 | 8 |
| Creative writing | 8 | 3 | 8 |
| Method | 1st | 2nd | 3rd | None of 3 |
|---|---|---|---|---|
| Solve | 46 | 5 | 3 | 0 |
| Choice by choice, with a draw | 46 | 1 to 5 | 0 to 6 | 0 to 5 |
| Down the list, one row at a time | 40 to 46 | 1 to 12 | 0 to 7 | 0 to 5 |
The hand rows are ranges because a hand result depends on the order of the list, so each was run over 500 shuffled lists. 46 first choices is the ceiling here: add up the smaller of seats and first choices for each elective. Choice by choice always reaches it, which is a good reason to prefer it to going down the list, which reached as few as 40.
The gap is in what happens next. Solve gave all 54 students one of their three. Either hand method could leave up to 5 students with none of their three, and neither matched Solve's counts in any of the 500 lists. Solve looks at everyone at once, so it can pick who stays in Robotics by who still has somewhere else to go.
What Solve does and does not promise
Solve follows a fixed order: place the most people, then give the most first choices, then the most second choices, and so on, then put the fewest people in a session they did not rank. By that order the result above is the best possible for those rankings, and the site's tests hold the method against an exhaustive search on small rounds. The full rule is on how Solve places people.
It is not the best by every measure. Solve will take one more first choice even if that pushes two other students down a step. If your aim is that nobody gets a third choice, that is a different aim, and Solve has no setting for it. A new lottery number changes which student gets which place, not these counts.
Doing it on Sortround
- Set up an event for children: each name is a first name and one initial, or a nickname, and no email address is needed.
- Add the electives with their seats, and ask for 3 choices.
- Print the code slips. Each student opens the one event link, enters their code and drags the electives into order.
- Press Solve. The fairness view shows how many got each choice and how full each room is. If a student must be in one elective, lock them and solve again.
- Publish. Each student sees only their own place, and you can print one roster per elective.
This example fits without paying: an account holds 60 people, 1 round, 20 sessions and 5 locks in 1 event. A whole year group above 60 needs a paid plan, which holds 2,000 people. Other tools do this too. If your school runs Moodle, Fair Allocation lets students rate choices and allocates them, but it is a plugin that an administrator has to install (Fair Allocation on the Moodle Marketplace, University of Bath teaching guide). Poll and Match, the tool the 2016 post reviews, is still live: people rank choices, you set a capacity for each, and it assigns them.
Pages read for this guide, as they stood on 5 November 2026: Microsoft's Excel forum (December 2022), Instructure Community (April 2024), a teacher's blog post (May 2016), Fair Allocation on the Moodle Marketplace, University of Bath teaching guide, Poll and Match.