KPC - Keypress-Point-Click Model

Eric J. Fimbel - Research results and data sets - home page      back to skilled users

Citation: Fimbel, E.J. (2009) Skilled Computer Users. Available at Last retrieved : (mm/dd/yyyy) 


The KPC predicts the time it takes a skilled computer user to execute a task on a computer equipped with a standard graphic interface (GUI), using a keyboard and a mouse. 

The execution time predicted by the KPC characterizes the average execution time of a population of skilled computer users, measured on several repetitions of the task. 

Skilled computer users are the persons that are highly familiar with computers and graphical interfaces but not necessarily with the task. 

The KPC is a simplified version of the KLM model of performance of expert users (Card, Newell, Moran, 1980). Unlike skilled users, experts (in the sense of the Human-Computer Interfaces community) are already highly familiar with the task.

The KPC was developed during the Master's research project of P-S Dube (Dube, 2005).

How it works

This section presents the step-by-step method to use the KPC. See Section Basic Key Logger for software tools.

1 - Start from an interface. You can use a prototype or by default detailed specifications.

2 - Select a set of tasks of interest (the most common, the most critical, whatever)

3 - An analyst (or yourself) examines the interface and finds 'the fastest ways' to execute the tasks.

The 'fastest ways' are called optimal strategies. They are generally defined at a coarse level, e.g., 'fill field A first, then go to next field with TAB, then ...'

4 - Convert the optimal strategies into sequences of basic operations (keystroke-level operations). The operations are:

K for keypresses (compound keys count for several Ks, e.g., ctrl+c = 2 Ks)

C for clicks

P for pointing movements.

The sequences prepared in this way are called here reference sequences.

5 - Count the operations of the reference sequences. 

For each sequence, you will have a 3-uple (Nk, Np, Nc )

6 - Determine the predicted execution time of each sequence from the estimates of Table 1.

ET(task) = ET( reference sequence ) = Nk * Tk + Np * Tp + Nc * Tc

Table 1. Basic operations and estimates of execution times in milliseconds.

 operation descriptionestimate 
Kkey pressTk = 360
Ppointing movement
Tp = 820
CclickTc = 260

Note. There is a also a virtual operation called Q, that represents a forced pause of 1s. Use Q (or a sequence of Qs) to model the delays of response of the system, the time to wait for a tool-tip etc.

We recommend avoiding the Q operation: it rests generality to your sequence, because it depends on the operating system, the hardware, the network traffic, etc.

7 - If you really want a unique index of efficiency, weight the predicted execution times of the reference sequences on the set of tasks.

Index = sum( task i * weight i ) / sum ( weight i )


Task-  The user enters login and password and clicks and/or key-press the OK button. 

The user starts with the hand on the mouse, the mouse elsewhere on the screen.

Figure 1. A login window.

1 - Let us consider 4 possible strategies.

usual - point-and-click field login, type "user", press tab, type "passwd", point-and-click ok

mouse - point-and-click field login, type "user", point-and-click field password, type "passwd", point-and-click ok

keyboard - point-and-click field login, type "user", press tab, type "passwd", press tab andCR.

disorder - point-and-click field password, type "passwd", press shift+tab, type "user", 
point-and-click ok.

2 - Make your mind: what is the optimal strategy?

usual, mouse, keyboard, disorder?

3 - Let us estimate the execution times with KPC

usual : sequence PC KKKK K KKKKKK PC, predicted duration 6.12s

1point and click field loginPC
2type "user"  KKKK
3press tabK
4type "passwd"KKKKKK 
5point-and-click okPC


K11360 3960
total  6120ms

mouse : sequence PC KKKK PC KKKKKK PC, predicted duration 6.84s

1point and click field loginPC
2type "user"  KKKK
3point-and-click field passwordPC
4type "passwd"KKKKKK 
5point-and click okPC


K10360 3600
total  6840ms

keyboard : sequence PC KKKK K KKKKKK KK, predicted duration 5.76s

1point and click field loginPC
2type "user"  KKKK
3press tabK
4type "passwd"KKKKKK 
5press tab and crKK


K13360 4680
total  5760ms

disorder: sequence PC KKKKKK KK KKKK PC, predicted duration 6.48s

point-and-click field password, type "passwd", press shift+tab, type "login", 
point-and-click ok.

1point and click field passwordPC
2type "passwd"  KKKKKK
3press shift+tabKK
4type "user"KKKK 
5point-and-click okPC


K12360 4320
total  6480ms

4 - finally, the optimal strategy was keyboard and the measure of efficiency of your interface is 5.76s.

Remark 1. the difference between the best and worst strategy is in theory below 16%. 

Personal observation. Whatever the strategy employed by a skilled user, he or she will in fact be close from the optimal time.

..try it yourself.

Scope of KPC

KPC provides a numerical measure of the efficiency of your interface for a set of reference tasks.

This measure is the average execution time of skilled users after a few repetitions with the tasks. Skilled users are the persons that are highly familiar with computers, but not necessarily with the software at use and/or the tasks.

The measure is a best case scenario: there is no error and no loss of time due to the task itself (counter-example: redacting a manuscript requires more thinking than transcribing).

The measure is for a standard GUI interface, using mouse and keyboard.

The expected accuracy and the limitations of KPC are similar to those of KLM.

According to the literature on KLM, the error of prediction is typically below 20% (Card & al., 1980, Kieras, 1993, Ivory & Hearst, 2001). However, be aware on how this error is measured. 

Typically, it is the difference between the average performance of a group of users and the prediction of the KLM. This does not account for the variability of human performance.

From our experience in laboratory experiments, the variability may be for example between 50% and 20%. This means that on a single execution, the error of prediction may be 70%.

Finally, several factors may affect the quality of prediction. KPC uses

1) a set of significant tasks (the most frequent, the most difficult, etc.),
2) optimal solutions for achieving these tasks, typically established by human analysts
3) standard estimates of the execution time of basic operations.

Therefore, the quality of prediction depends on the representativeness of the tasks, the quality of the optimal solutions and the fitness of the standard estimates to your hardware and software and the capacities of your users.

The Basic Key Logger

Basic Key Logger is a standalone key logger, i.e., a program that records keyboard, mouse and interface events from any software running in parallel. Basic Key Logger is open source.  

Basic Key Logger generates directly a sequence of KPC operations in TSV format (ascii file, tab-separated-values) that can be read by any spreadsheet.

In fact, Basic Key Logger has a few more operations (see Table 2)

You can use Basic Key Logger to record the KPC sequence from the analyst's strategies (step 4) and compute the predicted execution time with a spreadsheet (steps 5, 6).

You can also implement your own key logger. Here are the rules of conversion to generate KPC operations from sequences of input events .

Table 2. Operations of Basic Key Logger and rules of conversion events-operations
 operation descriptionrules of start and stop.
Aautomatic key press
(keyboard auto-repeat)
start: event key X pressed when X was already pressed.

stop: next event key X pressed or key X released
Cmouse button click start: event button X pressed

stop: next event button X released

key press start: event key X pressed when X was not already pressed.

stop: next key X released.
Ppointing start: event mouse moved when there is not a P operation already started.

stop: next event mouse moved that verifies:

1) the previous mouse moved occurred more than 100ms before (duration is adjustable) AND

2) there is an intermediary event (different from mouse moved) after the previous move moved.

comment. A P stops when there is a pause in mouse movement and something occurs during this pause.
Q quiet period  start: the previous event occurred more than 1s ago (duration is adjustable).

stop: next event.

comment. Q represents the pauses that were observed. This is more general than the Q operation of KPC, which represents a forced pause.
Wscroll of mouse wheel. start: event mouse wheel when there is not a W operation already started.

stop: next event mouse wheel that verifies:

1) the previous mouse wheel occurred more than 100ms before (duration is adjustable) AND

2) there is an intermediary event (different from mouse wheel) after the previous mouse wheel.

comment. A W stops when there is a pause in mouse wheel scrolling and something occurs during this pause


Card S.K., Moran, T.P., Newell, A., 1980. The keystroke-level model for user performance time with interactive systems. Communications of the ACM, 23(7), 396-410.

Card, S.K., Moran, T.P., Newell, A., 1983. The psychology of human-computer interactions.  New Jersey: Lawrence Erlbaum.

Dubé, P-S. (2005) Système de représentation d'interfaces centré sur l'Usager. Masters thesis, Electrical Engineering Department, ETS Montréal.

Hudson, S.E., John, B.E., Knudsen, K., Byrne, M.D., 1999. A tool for creating predictive performance models from user interface demonstrations. CHI letters, 1(1), 93-102.

Ivory, M.E., Hearst, M.A., 2001. The state of the art in automating usability evaluation of user interfaces. ACM Computing Surveys, 33(4), 470-516.
Kieras, D., 1993. Using the keystroke-level model to estimate execution times. Unpublished Report, University of Michigan. Available at (last consulted 2009-11-19)

Copyright: (c) 2009 E.J. Fimbel, P-S Dube. This is open-access content distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.