Summary: GOMS-KLM is a time-tested method for estimating how long it will take expert users to complete tasks, helping UX professionals optimize design efficiency. In this article, I break down the method, explore its limitations, and provide a template and video tutorial to help you integrate GOMS-KLM into your workflows.
In today's fast-evolving world of UX research, precision and speed matter more than ever. That's why I'm revisiting one of my favorite tools for improving task efficiency: GOMS-KLM. This method is designed to estimate how long it will take experienced users to complete a task without making any mistakes. Despite being developed decades ago, GOMS-KLM remains incredibly relevant and useful for UX professionals conducting research in the real world.
GOMS-KLM works by breaking down tasks into their simplest components, called "operators." These operators include basic actions like keystrokes, button clicks, moving a mouse, and mental actions like decision-making. Each of these operators has a time value based on research, and by adding them up, we can accurately estimate the time needed for a user to finish a task.
I've written about GOMS-KLM before in the context of AI-powered product features, but now that I've gained many more readers due to the popularity of the R and RStudio for UX Researchers series, I wanted to revisit the topic. This time, I’ll focus purely on how GOMS-KLM can help you better understand user behavior and streamline task efficiency. It's a great tool for UX researchers, and I've even included a template and video tutorial to help you get started.
What is GOMS-KLM Anyway?
Let's break down what GOMS-KLM actually means. It's a quantitative model designed to predict how long it takes an expert user to complete a task — error-free. GOMS and KLM work together to analyze and measure user behavior in a detailed, structured way.
Defining GOMS
Goals: These are the high-level objectives a user wants to achieve. For instance, writing an email is a high-level goal that can be broken down into smaller goals like typing the message or attaching a file.
Operators: These are the physical or cognitive actions a user takes, such as clicking a mouse, pressing keys, or making decisions.
Methods: These are the procedures or steps a user takes to achieve their goals. For example, clicking through a menu or using a keyboard shortcut.
Selection Rules: These guide how users choose between different methods, often depending on context or familiarity. Some users might prefer shortcuts, while others navigate menus.
Defining KLM
KLM stands for the Keystroke Level Model. It assigns time values to the operators identified in the GOMS model. These time values are derived from decades of research into human interaction with systems. By adding these times together, we can predict how long a user will take to complete a task.

GOMS and KLM Combine
By combining GOMS and KLM, we get a powerful tool for predicting how much time a task will take, down to the millisecond. GOMS provides the framework for understanding tasks, while KLM adds precision to each action. Together, they allow for detailed analysis of user interactions.
GOMS-KLM Limitations
While GOMS-KLM is an incredibly useful tool, it's important to recognize its limitations. Here are a few things it doesn't account for:
Learning Curve: GOMS-KLM assumes users are experts, so it doesn't consider the time users need to learn a new system or interface. For example, in one project, we found that GOMS-KLM didn't capture the frustration users experienced when learning a new system, even though the time-on-task estimates were accurate. It's a great reminder that efficiency isn't everything.
Discoverability: It doesn't measure how easy or difficult it is for users to find features or content within a system. If your users have trouble locating functions, GOMS-KLM won't reflect this.
Errors: Since GOMS-KLM assumes users make no mistakes, it won't provide insights into where users might struggle or make errors. It operates under the assumption of a perfect "happy path."
User Satisfaction: While GOMS-KLM is great for efficiency, it doesn't tell us anything about how users feel about their experience—whether they find it enjoyable, frustrating, or confusing.
Despite these limitations, GOMS-KLM remains incredibly valuable for understanding time-on-task and baseline task efficiency.
I've seen designs improve dramatically from one iteration to the next when UX professionals are confronted with the hard data from a GOMS-KLM report.
The simple act of breaking down each step of a task with a fine-tooth comb is often eye-opening for many UXers. It sheds light on the real-world experience users will face and elicits empathy in UX designers, allowing them to focus on what users actually do in the real world.
More Relevant Now Than Ever
Even though GOMS-KLM has been around for decades, it's just as valuable today as it was when it was first developed. Here's why:
Accuracy: GOMS-KLM delivers highly accurate predictions of user task times. For example, when I ran 42 GOMS-KLM estimates on our product at Bowery, the predictions were within 15% of actual user data. This level of precision is incredibly useful when making design decisions or prioritizing features based on real-world performance.
Efficiency: Once you've set up a template, GOMS-KLM calculations are quick and easy to replicate. At Minitab, we created a reusable template with operator times, allowing us to generate time estimates across different designs. This saved us countless hours compared to traditional user testing methods and gave us faster insights.
Supports Fast Iteration: At Siemens Software, GOMS-KLM helped us make informed, quick decisions on task redesigns. Instead of spending hours debating different design options, we used GOMS-KLM to quantitatively compare workflows. This resulted in an almost 20% reduction in sprint planning time. It's a perfect fit for Agile workflows and for teams that have adopted Jakob Nielsen's discount usability approach to UX research in the real world.
How To Conduct a GOMS-KLM Audit
Running a GOMS-KLM audit may sound intimidating, but once you break it down into steps, it's straightforward. Let's walk through it step by step:
Step 1: Define the Workflow
First, identify the task or workflow you want to analyze. Keep it specific, like "logging into an account" or "creating a new document." This ensures you're focused on a clear, real-world task that users perform.

Step 2: Identify the User's Goals
Next, break down the task into user goals. What are they trying to achieve? For instance, if the task is "creating a new document," the user goals might be "open the app," "navigate to 'New Document'," and "begin typing."
Step 3: Break Down Goals into Methods
For each goal, determine the methods a user might use to achieve it. A method is simply the series of actions the user takes. For example, to "open the app," the user might "click the desktop icon" or "search for the app in the start menu."
Step 4: List the Operators
Now, break down each method into individual actions, known as operators. Operators are basic user actions like clicking a button or typing on a keyboard. For example, to "click the desktop icon," the operators would be, "grab the mouse" "move the mouse to the icon" and "click the mouse button."
Step 5: Assign Time Values to Each Operator
Assign a time value to each operator based on the KLM operator times. These values are based on decades of research. For example, a keystroke might take 200 milliseconds, and a mouse click might take 320 milliseconds. You can find these time values below in the template I've created.
Step 6: Calculate the Total Time
Add up the times for each operator to get the total predicted time-on-task. Make sure to factor in any system delays, such as load times or render times, if relevant. The template will automatically calculate these totals for you.
Step 7: Validate the Model
Once you have your calculated time, test the task with real users and compare the results to your GOMS-KLM estimates. This validation step helps ensure your model aligns with actual user behavior.
The image below is an example of a real GOMS-KLM audit I conducted while working at Bowery Valuation. We executed 42 distinct GOMS-KLM estimates on various UX designs. Post-launch, we compared our GOMS-KLM predictions with actual user analytics. The findings were compelling—our GOMS-KLM predictions consistently stayed within a 15% deviation from actual times.

Step 8: Analyze and Improve
Finally, analyze the results to identify areas where the workflow can be optimized. Are there any steps that take longer than expected? Is there a way to streamline the process to reduce overall time-on-task? Use these estimates to guide design improvements.
Template & Video Tutorial
To help you get started with GOMS-KLM audits, I've created a Google Sheets template that simplifies the process. The template includes pre-filled operator times based on validated usability research, so all you have to do is plug in your tasks and methods.
Subscribe, and I'll grant your email address access to the template. Once you've subscribed, you can access it using this link. GOMS-KLM Template Google Sheets Template.
Here is a quick guide on how to use the template:
Step-by-Step Instructions
Access the Template:
Download the template here or by using the link provided in the description of the tutorial video below. Once opened in Google Sheets, you'll see three sheets:
Compare GOMS, One-Off GOMS,
andOperator Values Table.
Understand the Sheets:
Compare GOMS: This sheet is for comparing time-on-task between two versions of the same workflow. Use this if you're looking to evaluate changes in a redesign or optimize different design options.
One-Off GOMS: This sheet estimates time-on-task for a single workflow without comparison.
Operator Values Table: This is your lookup table, which includes the most common operator actions (keystrokes, clicks, etc.) and their time values. The other sheets pull from here for calculations.
Using the Operator Values Table:
Start by reviewing the
Operator Values Table
to see the available operators, such as "Move Mouse" or "Click Mouse Button," and their assigned time values. If needed, add custom operators at the bottom of the list by entering a name, time in milliseconds, and a short description.
Compare Two Workflows:
Go to the
Compare GOMS
sheet and replace the pre-filled workflow names with your own. For example, "Version 1.0" could represent your current design, while "Version 1.1" represents a redesign. Input the steps and assign operators to each workflow step.The
Quantity
column indicates how many times an operator is performed. For instance, if a button is clicked twice, enter "2" in the column.The template will automatically calculate the total time for each version, and you'll see the time saved in the totals area.
Calculating for a Single Workflow:
Use the
One-Off GOMS
sheet if you're only interested in estimating time for a single workflow. Enter your steps, assign operators, and the template will calculate the total task time based on the operator times.
Add New Operators:
If you need to add custom operators, simply scroll to the bottom of the
Operator Values Table
, enter the operator name, its time in milliseconds, and a description. Once added, you can use the new operator in any of the workflow sheets.
Review Results:
As you enter operators and quantities, the template will calculate the time automatically. This allows you to quickly test different versions of your workflow and see how they impact task times.
For a more detailed walkthrough, watch this video tutorial. It covers everything from accessing the template to interpreting your results.
Conclusion
GOMS-KLM might seem like an old-school method, but it remains one of the most powerful tools for understanding how users interact with digital products. It's quick, accurate, and fits perfectly into modern UX workflows.
By breaking tasks down into their smallest components, GOMS-KLM gives you a clear picture of where improvements can be made and how much time you're saving (or wasting).
If you want to dive deeper, I highly recommend the book The Psychology of Human-Computer Interaction by Card, Moran, and Newell. It's a classic that offers a more detailed look into the theory behind GOMS-KLM and is a great resource for sharpening your UX research skills.
Great article!
You can create a force-copy link for the template so anyone who clicks it immediately creates a copy rather than relying on remembering to do that manually
https://youtu.be/2RPtanuPxcE