# Calculating a true relative proficiency index

#### Jennifer Murphy

##### New Member
I want to calculate an accurate relative rating of a typist's skill or proficiency for each key on the keyboard.

If I give someone a sample of text to type, I can keep track of the percentage of correct keystrokes for each key in the sample. But I think this measure by itself is misleading. I also need to keep track of the time interval between keystrokes. If the A key has an accuracy rating of 90% and an average time interval of 200 ms and the B key has an accuracy rating of 95%, but an average time interval of 800 ms, which key is actually the stronger -- more proficient?

I can guarantee a 100% accuracy rating by carefully typing each character very slowly, but that certainly does not make that the strongest key.

Suppose I have these results for 4 keys after a typing test. The Ave MS line is the average number of milliseconds to type that key correctly.

Code:
  Key         A     B     C     D
Accuracy  0.95  0.90  0.98  0.95
Ave MS     400   600  1200   500
How can I combine these two metrics into a single metric that reasonably accurately measures the overall relative strength of these 4 keys?

#### Jennifer Murphy

##### New Member
How about this? If I normalize the average interval times to a 0-1 scale, they will look sorta like percentages. I can then use them to discount the accuracy percentages resulting in a combination rating on a 0-1 scale.

In the example below, I have the data for 8 keys, numbered 1-8. In Col C, I have assigned each row a variable name for reference. Cols E-L contain the data for the keys. Cols M-N contain the minimum and maximum values in each row.

View attachment 6468

Row 5 contains the accuracy ratings (A). They range from .80 to .99.

Row 6 contains the average keystroke interval timings. They range from 200 ms to 900 ms. Row 7 contains the equivalent typing speed in WPM (words per minute), which range from 13 WPM to 60 WPM.

In Row 8, subtract the minimum interval timing (200) lowering the range to (0,700).

In Row 9, I divide by the (new) maximum interval timing (700) changing the range to (0,1).

In Row 10, I divide that in half because I don't want the interval timings to discount the accuracy ratings by more than 50%.

In Row 11, I subtract from 1 to reverse the range (1,0). Lower intervals are better.

And in Row 12, I discount the accuracy ratings by the scaled keystroke interval timings. This changes them from a range of (0.80,0.99) to (0>40,0.95).

Cell K11 contains the maximum discount factor (0.50), which divides the accuracy rating in K5 in half from 0.80 to 0.40. L11 contains the minimum (1.00) discount factor (1.00), which leaves the accuracy rating in L5 (0.95) intact.

I would appreciate any comments or critiques on this approach.