Please explain the Algorithm used to calculate Skills Match % on Resource Requisition Search.
Here's how the skills search algorithm works:
When you select skills to search for, on the skills browse you choose 4 things:
Skill itself (e.g., programmer)
Weight you want to give this selection (number 1-10)
Proficiency level (number 1 - 10 - Beginner to Advanced)
Interest level (number 1-10 - Low to High).
These values are stored in the filter for requisition list.
When you search the filter values for skills are added to the temporary skills table.
If skills are part of the filter, the search query gets updated with data from the temporary table.
This creates the skills "temporary table" that is joined to provide the score.
The score is calculated by using the following clause in the select portion of the query:
Where the total_weight is the sum of the weights defined in the filter.
Since the skills "temporary table" uses 'AND' joins, both the proficiency level and interest level of selected resources must be less than or equal the proficiency level or interest level in the filter. If one is greater than that, resource is not returned in the skills match.