Percent-based routing (also called percentage- and probability-based routing) is one way to select the route for the traffic.
It is also sometimes called dynamic routing because the call order is selected randomly on each call and can change greatly based on the settings.
Call routing by percent means that a call is routed by a random probability—not by the lowest price for the destination (least cost routing, or LCR), and not by predefined priority (priority-based or weight-based routing).
This method of routing is used in various cases. It is mostly used when it is necessary to mix traffic from different providers for various reasons, some of which could be unethical or slightly illegal. Let’s consider one such case as an example.
Use case example
This method is widely used to form some special plan with specific properties of price or quality. For example, we could configure a routing plan offering adequate quality and a lower price and name it SILVER (a usual name to indicate that it is not the highest quality). In such a case, providers that do not offer the most expensive service and providers that do not offer the best quality are mixed together to provide this type of route. If we have several providers with slightly different prices, we could mix them in the desired proportions to get the approximate price/quality route. Here is a simple example.
With the priority routing, giving each provider a 50% probability, we can construct a route with the following parameters:
- Price: 0.15
- Quality/ASR: 40%.
By using different percentage values for each provider, it is possible to construct more diverse types of routes. Things become more interesting and more complicated when we add more providers to the equation.
It is important to note that with this method, we can operate only within the limits of the given providers. For example, in the case of the table above, we can construct routes in the price interval of 0.1–0.2 and in the quality interval 30–50%.
How probabilities are calculated
Let’s consider another example, for one special route (34 Spain) with three providers with the percentage values below.
|34||Spain||Provider A||50 %|
|34||Spain||Provider B||30 %|
|34||Spain||Provider C||20 %|
In short, this means:
- Provider A has a 50% probability of being chosen FIRST.
- Provider B has a 30% probability of being chosen FIRST.
- Provider C has a 20% probability of being chosen FIRST.
The system orders these providers using the following algorithm.
As a first step, it randomly selects the first provider. There is a 50% probability that Provider A will be selected, 30% for B, and 20% for C.
Let’s suppose that on this occasion, Provider B is randomly selected.
In the second step, the system selects from the remaining providers with the probabilities listed above (A: 50%; and C: 20%).
When the sum of the percentages does not equal 100, then the provider is selected in the following way.
- The percentages are added together: 50 + 20 = 70.
- The system selects a random number between 1 and 70.
- The system matches this random number to a provider, based on their probability ranges.
As we have 50 + 20 = 70, the system selects a random number between 1 and 70. Let’s say it selects the number 49.
If we plot the providers in the intervals, where Provider A with a probability of 50% is [1..50] and Provider C with a probability of 20% is [51…70], we will have our interval: [1..50] + [51..70] = [1..70].
The randomly selected number 49 falls into the interval [1..50], which belongs to Provider A. That means Provider A is selected.
Any number from 51 to 70 would mean that Provider C is selected.
The same logic applies when there are more providers. In the initial example, with providers A, B, and C: 50 + 30 + 20 = 100 would be [1..50] + [51..80] + [81..100] = [1..100].
Let’s return to our example, and the second step, where we must select between A (50%) and C (20%).
There is a much greater chance that A will be randomly selected rather than C. So let’s say A is indeed selected.
The final order of our providers (routing table) will be: B – A – C.
Every time, the order is RANDOMLY made in the same way, using percentage values for probabilities.
So we can get various results, such as A-B-C, A-C-B, B-A-C, C-A-B, etc. However, following mathematical reasoning, after a huge amount of calls (going on to infinity), the sets will follow the rule in the first step: the provider selected first will be A in 50% of the cases, B in 30%, and C in 20%.
To better illustrate the method, let’s look at a simpler situation. We have two providers with these percentages:
- A: 99%
- B: 1%.
Provider A will be selected first 99% of the time so that when we have many ordered lists, they will look like this:
A-B, A-B, A-B, A-B, A-B, ………, B-A, A-B,……..A-B, ……….
The probability that the provider order will be B-A is only 1%.
It is important to remember that some providers could fail, in which event the next provider will be tried for the call. That is why provider ordering and route plan construction are necessary.
This type of routing could be used in such a scenario as traffic blending. In some cases, this is considered to be fraud, and it should be mentioned here.
Percent-based or probability-based routing could be used for CLI/NCLI blending. What then happens is that the route is sold as a premium CLI route, but in order to increase the profit margin, a much cheaper non-CLI (NCLI) route is mixed into the routing plan.
The same method could be used to introduce FAS routes into the routing plan, which is considered highly illegal and unethical. In such a case, some small percentage of calls are routed to the FAS route, where a fake message is played when a call is answered, or some similar trick is played to keep the caller on the answered line, thus taking his money. This increases profitability for the system owner and is quite popular, but it is a clear theft that has no place in this business.
Percent-based or probability-based routing is a powerful tool in your store of routing plans. It can be used in various scenarios by constructing various types of routes. The benefits are powerful: simple logic, a dynamic routing order, a low system overhead, and a high degree of control.
Photo by Tyler Easton on Unsplash