What is the Keystroke-Level Model?

Keystroke Level Model

In this post I’ll share what the Keystroke-Level Model (KLM) is, why and how it can be useful in research and design, and how we can help you perform a KLM analysis.


The Keystroke-Level Model (KLM) is a relatively simple tool that allows a designer, researcher, or engineer to predict or estimate how long it will take an experienced user to complete a routine task in their software. The Keystroke-Level Model was developed in the early ‘80s and is still widely used today. It has been updated and adapted to account for newer form factors such as smartphones and touchscreens.


The model is composed of six elements, or operators: 

  • K - keystroke or button press. This operator counts the number of times keyboard buttons are pressed as well as mouse clicks. It counts keys rather than characters, meaning that typing a capital X would be two different K actions, one for pressing Shift and another for pressing X. Some experts will classify mouse button clicks as B for greater clarity.
  • P - pointing with a mouse. It is important to note that moving the mouse (P) is a separate action from clicking the mouse, which would be counted as K. .
  • H - homing the hands on the keyboard or other device. Homing in this context can be thought of as positioning. This homing or positioning can be moving from one device to another, such as from mouse to keyboard, or can be more finely positioning the hands on the same device, such as moving from letter keys to a numpad on the same keyboard.
  • D - manually drawing. This is used when drawing a straight line with a mouse. It is not frequently used.
  • M - mental preparation. This is the time needed for thinking or planning an action or decision making. 
  • R - system response time. This element is only used when the user must wait for the system, such as processing or loading time. Therefore, this R is unique to the system and must be measured for the task at hand. Some experts recommend calling it W or waiting time as it more clearly defines what is encapsulated in this measure and suggests taking a sample or aggregate time for an application. If response or waiting time overlaps with M thinking time, only the waiting time that extends past the thinking time needs to be entered.

Each element has a time associated with it. For example, K for an average typist (40 wpm) is 0.28 seconds, P is 1.1 seconds, and M is 1.35 seconds.


In order to perform a KLM analysis you script out the steps needed to complete the task, aggregate all of the actions, then multiply the time associated with each element by the total count for that element.


I find a simplified example to be useful in showing how KLM works in practice. Our task is to enter a street address into a text field. We break that task down into its component parts:

  1. Initiate the entry (M)
  2. Find the correct text field (M)
  3. Point to the correct field (P) 
  4. Press mouse button (B)
  5. Release mouse button (B)
  6. Move hands from mouse to keyboard (H)
  7. Type “123 Main St.” (14K) remember, it’s key presses, not characters.

Total time = 2M + 1P + 2B + 1H + 14K


It is important to remember that KLM is only a measure of ideal efficiency and not an overall measure of how usable a product is. It’s crucial to use the tool in conjunction with other UX methods to paint a holistic picture. 


What is the Keystroke-Level Model useful for? In my own personal experience with the method, I find its uses can be grouped in three main buckets. 

  • First, identifying inefficient subtasks within a larger workflow. Generally, I’ve done this to help point designers and engineers to troublesome parts of a workflow where the greatest return on investment can be gained. 
  • Second, comparing various options or possible solutions. This can be done when there are multiple possible solutions to a problem, as a pre and post measurement, or to model a non-existent theoretical workflow before spending time coding it. 
  • Third, I’ve seen clients have success using KLM metrics as part of their change management process to drive enthusiasm for a change or upgrade and ease concerns from change resistant users.

In summary, the Keystroke-Level Model tracks individual actions, such as keystrokes and mouse movements, to measure the efficiency of a workflow. It is a useful tool when efficiency is a critical piece to the success of a project and measurements are needed to make decisions or validate a change. A KLM analysis can occur at any point, or at multiple points, throughout  a project’s life cycle, even before mockups or prototypes have been created. 


No matter where you are in your product’s life cycle, Key Lime Interactive can perform a Keystroke-Level Model analysis for you. Just reach out to us, we’re glad to assist you with KLM or any other UX research needs you may have.


More by this Author


Add Comment