Welcome to Parity Builder, an open source application that assists you in assigning individuals to rosters with the goal of making the rosters as comparable as is possible.

How does Parity Builder work?


You provide Parity Builder with the following information:

  • a list of individuals available for assignment to rosters (each individual being assigned to at most one roster);
  • a list of attributes that characterize those individuals;
  • the value of each attribute for each individual;
  • guidance on the acceptable and desirable number of rosters and size of those rosters;
  • information on whether it is mandatory (or desirable) that every individual be assigned to a roster;
  • (optional) restrictions on what pairs of individuals should/should not be assigned to the same roster; and
  • priorities for various goals.

Parity Builder then attempts to build rosters from the individuals that satisfy your restrictions and are as similar to each other as possible in terms of the size of the roster and the characteristics (attributes) of the individuals on the roster.

Where would Parity Builder be used?


Here are a few possible applications:

  • Assigning participants in a recreational sports league to teams. Individuals sign up for the league but not for a specific team; the league makes team assignments. It is likely that full utilization (everyone being assigned to a team) will be a requirement. There will probably be hard limits to the size of a team, and it will be desirable to make teams as close to equal in size as is possible. Teams should be as comparable as is possible with respect to characteristics (such as size or skill) that might affect competitive balance. In some circumstances, pairs of individuals (for instance, siblings) should be kept together, and possibly some pairs of individuals (who do not get along well) should be kept apart.
  • Assigning students to study or project teams. Assigned teams are common in MBA programs, for example. Team sizes should be similar, and it is usually desirable to keep teams similar with respect to characteristics such as gender balance, proportion of domestic v. international students, academic ability and background, so that no student feels disadvantaged by their assignment. Again, in some circumstances specific pairs of individuals should/should not be together. (For example, in some programs married couples are assigned to different teams to avoid the perception of a coalition forming within a team.)
  • Assigning packages (the "individuals") to containers (the "rosters") for shipment, with an eye toward balancing the weights of the containers (and possibly other considerations, such as the number of fragile packages within each container).
  • Assigning experimental subjects (the "individuals") to treatments (the "rosters") so as to make the subject pools for various treatments as similar as possible.

Where would Parity Builder not be used?


Parity Builder is not suited for every roster-building problem, such as:

  • Assigning workers to teams with an eye toward maximizing the effectiveness with which team members work together. Team effectiveness and worker compatibility are within-team considerations; Parity Builder considers only across-team measures.
  • Assigning packages to shipping containers so that packages within one container have destinations near each other. Again, this is a within-roster concern.
  • Assigning workers to transport buses of different sizes (seating limits). Parity Builder assumes that all rosters have the same capacity and are essentially indistinguishable from each other.

What computing resources does Parity Builder require


Parity Builder is written in the Java programming language, and requires the Oracle Java Runtime Environment (JRE), version 7 or later. It will run on any operating system that has the correct JRE installed. There are no special requirements with respect to memory or computer speed.

How is Parity Builder licensed?


Parity Builder is released under the Apache License, version 2.0. It is built on the work of a number of other individuals and groups; please see the License section of the help file for specific information on the licensing of both Parity Builder and those third-party libraries. Fundamentally, you are free to use Parity Builder any way you wish (including for commercial purposes), at no cost, and without doing anything special or asking for anyone's blessing. You may redistribute it freely, so long as you include everything that came with it. If you are a programmer and you modify or reuse any of the library code (not including Parity Builder itself), you must comply with the terms of the respective licenses of the portions you use.

How can I get started?


The easiest way to get started with Parity Builder is to read the terminology section and then walk through the brief tutorial, which demonstrates a Parity Builder project from start to finish.