Skip to main content

Symon.AI help center

Assignment optimization

Optimize the value of items in one dataset when assigning from one dataset to another. For example, effectively balancing and designating accounts to a list of sellers.

Input and output

To use this tool, you need two data sets. The top node is the main data source, containing the items to be assigned, such as account IDs. The bottom node is the supporting data source containing the assignees, such as seller names.

When to use this tool

Use this tool to identify a way to distribute data from one set of data to another. For example, you want to assign sellers to sales accounts. Each account has a specific number of potential sales. You want to distribute the accounts in a way that each seller receives a fair amount of potential sales.


You can also choose to optimize by groups, instead of filtering each group and running the optimization tool separately. For example, you have a group of sellers and a set of accounts which are distributed in different countries. You want to assign accounts to sellers in the same country.

To group the data, you need two data sets. For the seller and accounts example, you would have an account data set and a seller data set. Both data sets must have a Region column, and the data would be the same in both data sets, such as US, CAN and MEX.

How to use this tool

Enter the following information to configure the tool:

Table 32. Assignment Optimization



Column to assign

Select the column from the top dataset containing the items to assign, such as accounts or tasks.

Assign to

Select the column in the bottom dataset for the assignees. For example, the sellers that receive the accounts or tasks from the Columns to assign field. The values in this column are the names that items can be assigned to.

Value to optimize

Select the column from the top dataset containing the numerical values to optimize. This column is your objective. For example, this field could be the seller suitability scores for a seller-account pairing, or the potential revenue from an account.

For each

Select the shared columns between the two data sets to optimize as a group. If there is no shared columns, a message of No shared column name.

Multiple values per item

Toggle this field to specify that there unique values for each item-assignee pairing . The value name option allows you to select the mapping column from the top dataset that specifies which assignee the numerical value in the Value to optimize column refers to. This mapping column acts as the joining key to ensure the correct assignee name is associated with that numerical value. For example, you could have multiple driving distance values for an account, depending on which seller it is assigned to. The value names column would be the one that specifies what seller distance the number in your objective column refers to.

All items to be a part of optimize outcome

Toggle this field to make all items from Column to assign be part of the outcome. If left unselected, some items could be left unassigned, if it best optimizes the objective.

Optimize by

Select the option to optimize the objective by. Choose from Minimize, Maximize or Balance.

Time limit

Assign a time limit to the optimization in minutes or hours. Symon.AI returns the best outcome it finds in the allotted time, and provides a message with what kind of solution it is. The output is more likely to be an optimal solution the longer the tools runs. We recommend starting with a short duration to test the data, such as three minutes.

Assignment locks

Select this option if you have a column in the top dataset that predefines some assignments to use. Symon.AI uses these assignments as constraints. For example, this column could contain seller names for the few accounts that have long-standing relationships with that seller, and must not be reassigned.

Set constraints

Select columns from the top dataset to use as constraints along with a minimum and maximum value. Click the + Constraint button, to select a column name and then set the lower and upper thresholds on the total value of this column assigned to any one assignee. For example, you may want to balance seller suitability scores when assigning accounts, but you want no seller to have more than 5,000 kms in total driving distance.