# Which algorithm is perfect to determine best fit analyst based on multiple factors?

Assume I have a team of 200 analyst who work on different IT tickets. I want a better ticket assignment system which considers multiple factors before ticket assignment.

• Outstanding Ticket with each analyst - availability
• A skill score on the type of ticket
• Customer satisfaction Score
• Communication score, etc

Now, as soon as a new ticket lands in the queue I'll determine how critical the ticket is, what kind of skill set is required and based on the customer/business area what kind of satisfaction and communication score the ticket is expecting.

Can someone suggest any algorithm which fits for this kind of problem - i.e. mapping the right analyst with right ticket based on multiple variables?

• Machine learning is not always the only option. Why don't you use a bounty system (with the bounty amount defined based on how critical the ticket is and making it conditional upon reaching customer satisfaction) and let the analysts themselves choose their tickets, therefore solving the skill matching problem. The bounty could go up with time to avoid starvation of undesirable/difficult tickets.
– noe
Commented Mar 11, 2020 at 23:38

One approach is a set of models which take the ticket as an input and churn out scores for how critical the ticket is, what kind of skill set is required, what kind of satisfaction score will be needed, and the communication skills needed.

Based on these predictions, you could then write a simple rule-based algorithm to determine the optimal analyst to send the ticket to. These rules would be based on the analyst characteristics you mention in the question.

Depending on the form of the ticket input, the models above may require an element of natural language processing (NLP). You may also want to research recommendation systems - it's very likely that something similar has been done before.

I think your best bet would be to develop a recommender system. Here is why and how:

The recommender system knows all the attributes of your analysts. It gives scores to those attributes. For example- how punctual an analyst is? The score can be 5 if good or 2 if bad.

Now, when a ticket is generated, you analyse its attributes, and score them.

Mow for matching the attributes to a particular analyst, you can use the recommender.