How do I get a rate per hour that can be negative into a positive score for ranking purposes?

I am writing a report that allows my employer to rank employees by productivity and fault rate. Employee ranks are based on productivity (value of 25%), supervisor input(value of 25%) and fault rate(50%). Catching a fault awards you a single point, causing a minor fault takes a point away, causing a major fault takes three points away. Using this number and the amount of hours tracked I want to get a "faults per hour" that is a positive number and use this to sum with the rest of the score in order to get a value with around 100 being the max that I can use to rank employees.

How do I properly calculate the fault rate per hour? The method I am considering is adding the score to a hundred and then weighting it according to time spent at the station, the issue that I'm having is I compare the final score to the average score at the station, how can I keep the average score of that station reasonable for comparison if I'm adding the results to 100?

So I guess I'm doing this

(x-3y - z + 100 / a) * b

[x] is the amount of faults they have caught.
[y] is the amount of major faults they have created.
[z] is the number of minor faults they have created.
100 is to get a positive number.
[a] is number hours spent at station.
[b] is the number hours spent on this station compared to total time


I'm dividing it by [a] because I need an hourly rate.

Since the period that I'm using as the baseline is 6 weeks and the period that I'm using to compare it is 6 weeks maybe I could just sum it all together and add the number to (100* 4) because it's 4 times the period size? These numbers don't have to be absolutely perfect because they will never be equal. Just looking to compare a 6week sample of a person's performance to a 6month sample of the entire average.

The "add 100" strategy sounds ad-hoc and unrobust. Who says someone can't make so many mistakes that they use up the 100 bonus points per hour?

(And in any case, it should be $100\times a$ rather $\frac{100}{a}$ to make any amount of sense).

I would do something like $$s_{\text{open}} = \frac{x-3y-z}{a}$$ to get a plain "average amount of good done per hour" (which can be positive or negative), and then use a logistic function to squeeze the open-ended scores into a finite interval: $$s_{\text{percentage}} = \frac{100}{1 + e^{(\beta\frac{3y+z-x}{a})}}$$ Then the score for $x=y=z=0$ would be $50$; an overweight in caught mistakes makes the score increase towards (but not beyond) 100; and an overweight in committed mistakes makes the score decrease towards (but not lower than) 0. And averaging the $s_{\text{percentage}}$ scores would still make some sense.

Choose the $\beta$ parameter by trial-and-error for real-world sample data such as to produce a reasonable spread in the values.

(Strictly speaking, if we assume that $s_{\text{open}}$ is normal distributed, you should probably use the error function instead of the logistic function, but it is more involved to compute. However, if you have enough data to estimate mean and standard deviation for $s_{\text{open}}$, then the error function could be the way to go).

• Is the e here this constant? en.wikipedia.org/wiki/E_(mathematical_constant) – davidahines Sep 27 '11 at 14:34
• How do I work out e to the power of (3y+z-x/a)? – davidahines Sep 27 '11 at 14:59
• Why does it become 3y+z-x/a? Is that because of it being divided by 100? – davidahines Sep 27 '11 at 15:26
• What do I use for the values of e? The score? – davidahines Sep 27 '11 at 15:26
• Do I just use 2.718 to the power of the inverse of the score? – davidahines Sep 27 '11 at 16:53