Developing a simple scoring system for client performance

I was hoping someone can point me in the right direction to develop a simple scoring system or algorithm on clients revenue performance over a period of time.

I have over 400 clients with their weekly revenue. I want to score or classify each client on a scale from 1 to 10 based on their revenue. I could easily use the highest revenue and divide it by 10 to get my range and intervals, however, when the top performing clients continue to grow, the range gets bigger.

I have created a line graph that represents each client and their revenue in order from highest to lowest to get an idea of the distribution of client performances. As you can see the majority of clients fall below 1000 and would all be scored as 1 which I don't think would give the best representation.

I would also like to consider the age of client and weekly average to add to evaluating the score.

Any suggestion in what kind of scoring system would suit this type of data.

Short answer: you could use $$log(revenue)$$. Before you calculate the $$log$$ make sure every client generates at least a penny of revenue since $$log(x)$$ is only defined for $$x>0$$ -- and a smile or a pleasant thought is worth a least a penny of booked revenue!

For a sense of scale, consider that $$log(.01)=-4.6$$ and $$log(10,000)=9.2$$, so your entire scale is $$<15$$ log units wide. I'm using natural log, naturally.

The log scale data will be much easier to wrangle. You could do what you are presently doing: setting 10 bins of equal sizes, with bin size $$\Delta$$ given by $$\Delta=\frac{max(log(x))-min(log(x))}{10}$$ Your ten bins are defined by their intervals above $$min(log(x))$$

1. $$[0, \Delta$$]

2. [$$\Delta, 2\Delta]$$

$$\dots$$

1. $$[9\Delta, 10 \Delta]$$

So the first interval will be $$[min(log(x)),min(log(x))+\Delta]$$ and your last one will be $$[min(log(x))+9\Delta,min(log(x))+10\Delta]$$

When the most profitable client doubles in size, the value of $$max(log(x))$$ will increase by $$log(2)=.69$$ (if you use natural log) and your scale will remain relatively stable.

Adding age, etc., to your scoring will involve specifying mathematically why age is worth more or less, relative to revenue. That is a judgment call, and is particular to your application.

• thanks, Peter for your suggestion. I will apply your suggested method and get back to you. – Daniel James Canil Mar 10 '19 at 9:23
• Money — income, revenue, net worth, etc. — is famously log normal, so taking the log first and asking questions later is a standard trick. In economics, it always makes sense to take the log of money because currency exchange rate, CPI, other multiplicative corrections become uniform shifts on the log(money) axis. – Peter Leopold Mar 10 '19 at 13:00
• Hi Peter, I applied the natural log and the count formed more a normalised distribution as opposed to something that was more biased which I was originally working with using the even intervals. – Daniel James Canil Mar 13 '19 at 4:06
• I love it when a plan comes together. -- Hannibal Smith :) – Peter Leopold Mar 13 '19 at 4:20

Adding to @PeterLeopold's answer, it is possible to use the powers of 10 to create intervals that may be easier to read, e.g.:

[1 000; 10 000[, [100; 1 000[, [10; 100[, etc.

Or splitting the other intervals roughly at the harmonic mean, we get

[3 000; 10 000[, [1 000; 3 000[, [300; 1 000[, [100; 300[, etc.

Another alternative would be using the intervals

[5 000; 10 000[, [2 000; 5 000[, [1 000; 2 000[, etc.

However, none of these three methods will give you necessarily 10 categories, and the number of clients may differ between them.

If you want a method that is based on the distribution of the data, you could divide in deciles to obtain 10 intervals that have (approximately) the same number of clients.

• Good suggestions. – Peter Leopold Mar 10 '19 at 13:04