From MoodleDocs


This plugin provides the ability to distribute various resources among users, while aiming to maximize overall user satisfaction with the distribution.

The plugin creates a rating allocation activity, where administrators define multiple choices that can be rated by users enrolled in the course. Several rating strategies can be selected.

When the rating period has ended, an algorithm automatically calculates the best distribution of choices based on the users' preferences. Users can then be assigned to groups based on their allocated choices.

Possibilities for resources to be distributed with this plugin:

  • Tutorial groups
  • Thesis or project topics
  • Seminar time slots

Steps to take

This chapter should give a guideline how the plugin "Fair Allocation" can be used and which steps have to be done in its life-cycle.

  1. Add a "Fair Allocation" instance to your course and configure it. (See the section "Settings")
  2. Add choices to your instance. (See the section "Edit Choices")
  3. After the rating period started users will start edit their ratings.
  4. After the rating period has ended:
    1. Start distribution (If not done automatically. See "Additional Settings")
    2. Adjust the allocation to your own needs. (See "Alter Allocation")
    3. If you want, you can create now moodle groups from the allocation. The users will be automatically be assigned to their respective group.
    4. Publish the allocation

In the section "Reports" the link "Show Ratings and Allocations" shows the current ratings and allocations. Here it is also possible to download the results in different data-formats (csv, xlsx, ods, html, json). Under "Show Allocation Statistics" you can see, how many first, second,... wishes could be fulfilled and how many students are still unassigned.

Alter Allocation

The algorithm is only as good as the settings he can work with. Often after the allocation is made by the algorithm some choices are booked completely and some are booked only sparsely. Sometimes it is hard to guess the exact number of students participating in the "Fair Allocation" at setup time. Then the sizes of the choices might be too high or too low. If you have too many places you can react in two ways:

  • If the sizes of the choices are flexible adjust the sizes and start the algorithm again. Then the students will be distributed more evenly.
  • If the choices are fixed, disable some choices and start the algorithm again. Then the students will be distributed only on the remaining choices.

Another reason for sparsely booked choices can be that most of the students rated this choice with the lowest possible rating (depending on the strategy). This is an indicator for the algorithm that this choice will not be assigned to this student. For this reason, some students might have been left unassigned. It is useful to check this and then assign these students manually.

In the manual allocation screen, you can alter the allocation of each single student. Here you see for each student, how he rated each choice and which choice he is currently assigned to. In the default filter settings, only those students are displayed, which have rated. You can alter the filter settings by checking or unchecking the two settings and then hit "Update Filter". This way you can for example also hide all students, which are already allocated, to focus on those, who still need to be assigned. You can also search for specific students by using the initial filters. Changes to the allocations are only persisted after the form is saved! While you alter the allocations, the green color of the checkbox border and the bold font of the rating text indicate the choice the student was assigned to before you started altering it.

When you want to delete an allocation just uncheck the specific choice and save the form.


In the settings there are various possibilities to adjust the activity to the own needs. In the following all plugin specific settings are described in the view of the effect they have on the activity.

Rating strategy

The rating strategy is one of the core settings of the "Fair Allocation" plugin. It specifies the way the users can rate upon the available choices. There are six different strategies available:

  • Accept-Deny The user can rate each choice with accept or deny.
  • Accept-Neutral-Deny The user can rate each choice with accept, neutral or deny.
  • Likert Scale The user can rate each choice within a scale of integers. The size of the scale can be adjusted in the individual strategy (beginning with 0). A high number means a high preference.
  • Give Points The user can rate the choices by assigning a number of points. The maximum number of points can be set in the individual strategy options. The choice with the most points is preferred.
  • Rank Choices The user has to state and order his N highest preferences. How many choices need to be rated can be set in the individual strategy options.
  • Tick Accept The user can state for each choice if it is acceptable for him.

In the background each selection option is assigned to an integer value for the use within the algorithm.


There are three dates, which are of interest for the underlying process of a "Fair Allocation" activity.

  • Rating begins at This date states the time, when the rating period is opened. Before this time no user will be able to edit his rating.
  • Rating ends at This date states the time, when the rating period is closed. After this time users are no longer able to create or edit their rating. In addition, all further steps of distribution offered to the teacher are only enabled after the rating period ended.
  • Publishdate This date has no effect on the process of the activity but offers the teacher a possibility to communicate the expected publish-date. This date can be disabled.

Strategy Options

Each strategy offers individual settings, which are only enabled for editing, when the respective strategy is chosen. There are some options many strategies have in common:

  • Label It is possible to assign individual labels to each selection option. However, when no value is set here the activity will take the default value, which makes it possible to display language specific labels.
  • Maximum number of choices the user can rate with... Here a number can be added, restricting the number of choices the user can decline. Internally the selection options "deny", 0 etc. are assigned to the value 0. The algorithm will make no assignment of a user to a choice he has rated with 0. To decrease the number of users, which could not be assigned to any choice according to their wished, the users should be forced to rate on a reasonable number of choices. Each user, who could not be assigned via the algorithm has to be allocated manually afterwards!

Some of the options however are very specific to the respective strategy:

  • Highest number on the lickert-scale (lickert-scale) This number configures who many selection options the users get. The scale starts always with 0 and ranges up to this value. The refresh button on the bottom enables to refresh the number of fields offered for the individual labels.
  • Total number of points users can assign (Give Points) This option states the number of points a user can and has to assign. All points have to add up to this number.
  • Number of fields the user is presented to vote on (Rank Choices) This option specifies the number of choices the user has to rate. For example, the number 3 means, that the user has to specify and order his top 3 choices.

Additional Settings

  • Automatic allocation after rating period If checked, the algorithm will start to generate the allocation directly after the rating period ended. This way, the allocation may be already finished when you next visit the course. However, the allocation will not yet be published, so you have time to look at the result and alter it manually.

Edit Choices

Directly after the creation of the Fair Allocation instance you should follow "Edit Choices". Here it is possible to create an arbitrary number of choices using the "Add new choice" button. Each choice has individual settings:

  • Title The title to be displayed for the choice.
  • Explanation The explanation should provide additional information to the choice.
  • Max number of members This field restricts the number of members, who can be assigned to this choice to a certain value. This is necessary for the algorithm in order to provide a good distribution. If there are no restrictions to the size, it is not necessary trying to optimize the distribution. This settings does however not prohibit an overbooking through the manual allocation.
  • Active It is possible to mark choices as inactive. This feature can be valuable if a course is duplicated over multiple semesters and one choice should be excluded for only one semester. Inactive choices will not be considered in the allocation of the algorithm and will not be available for manual allocation.


The plugin is based on the group_distribution plugin of the University of Ulm (Germany) and is further developed and maintained by the University of Münster (Germany)