Getting Started with uxlearn
A Practical Guide to Learning UX Evaluation
Pablo Sánchez-Núñez
2026-11-01
Source:vignettes/getting-started.Rmd
getting-started.RmdIntroduction
User Experience (UX) evaluation is an essential part of designing and improving digital products and services. Understanding how users interact with an interface requires collecting, analysing and interpreting usability data.
uxlearn is an R package designed to support the teaching and learning of UX evaluation. It combines usability metrics, educational exercises, synthetic datasets and practical case studies.
The package aims to help students develop practical skills in:
- Understanding usability metrics.
- Analysing user performance.
- Identifying usability problems.
- Interpreting quantitative results.
- Translating findings into design recommendations.
All datasets included in this tutorial are synthetic. They are designed for educational purposes and do not represent real users or empirical research findings.
Exploring the educational datasets
The package includes four synthetic usability datasets representing different digital environments:
- E-commerce.
- Digital banking.
- Online education.
- E-government.
Each dataset contains 150 observations from 30 simulated participants completing five tasks.
data("usability_test")
data("ux_banking")
data("ux_education")
data("ux_egovernment")
dim(usability_test)
#> [1] 150 9
dim(ux_banking)
#> [1] 150 9
dim(ux_education)
#> [1] 150 9
dim(ux_egovernment)
#> [1] 150 9Explore the online shopping dataset:
head(usability_test)
#> participant_id task_id participant_experience task_name
#> 1 P01 T1 Advanced Find a product
#> 31 P01 T2 Advanced Add product to cart
#> 61 P01 T3 Advanced Create an account
#> 91 P01 T4 Advanced Complete checkout
#> 121 P01 T5 Advanced Find order information
#> 2 P02 T1 Advanced Find a product
#> task_difficulty success time_seconds errors satisfaction
#> 1 1.0 1 27.4 0 7
#> 31 2.0 0 41.5 1 4
#> 61 3.0 1 48.8 1 4
#> 91 4.0 1 52.1 1 5
#> 121 2.5 1 53.4 0 6
#> 2 1.0 1 39.6 0 6The datasets share a common structure, including participant identifiers, task names, task success, completion time, errors and satisfaction scores.
Understanding UX metrics
Usability metrics provide quantitative information about the interaction between users and digital products.
The datasets included in uxlearn allow students to explore four fundamental dimensions:
- Task success: whether users complete a task successfully.
- Task time: how long users take to complete a task.
- Errors: the number of errors made during interaction.
- Satisfaction: users’ reported satisfaction.
For example, calculate the overall task success rate:
mean(usability_test$success) * 100
#> [1] 66.66667Calculate average task completion time:
mean(usability_test$time_seconds)
#> [1] 60.072Calculate average errors:
mean(usability_test$errors)
#> [1] 0.7533333Calculate average satisfaction:
mean(usability_test$satisfaction)
#> [1] 4.266667These metrics should be interpreted together. A high task success rate does not necessarily imply an efficient or satisfactory experience.
Learning UX through practical exercises
The ux_learning() function generates structured learning
exercises based on usability data.
Exercises are available at three levels:
- Beginner.
- Intermediate.
- Advanced.
For example, generate an intermediate exercise using the e-commerce dataset:
exercise <- ux_learning(
data = usability_test,
level = "intermediate"
)
exercise$results
#> $success_rate
#> [1] 66.67
#>
#> $average_time
#> [1] 60.07
#>
#> $average_errors
#> [1] 0.75
#>
#> $average_satisfaction
#> [1] 4.27Explore the task-level analysis:
exercise$task_analysis
#> task_name success_rate average_time
#> Add product to cart Add product to cart 56.67 50.79
#> Complete checkout Complete checkout 53.33 84.34
#> Create an account Create an account 60.00 69.85
#> Find a product Find a product 83.33 37.77
#> Find order information Find order information 80.00 57.61
#> average_errors average_satisfaction
#> Add product to cart 0.90 4.43
#> Complete checkout 0.97 3.37
#> Create an account 0.97 3.77
#> Find a product 0.20 5.20
#> Find order information 0.73 4.57The exercise includes quantitative results, interpretations and questions designed to encourage students to analyse usability findings.
Accessing the learning materials
UXLearn includes an educational workbook and an answer key designed to support independent learning and practical UX evaluation.
The ux_learning_materials() function locates these
resources within the installed package.
List the available materials:
materials <- ux_learning_materials()
#> UX Learning Materials
#>
#> workbook
#> "C:/Users/psanc/AppData/Local/Temp/RtmpUb2nzZ/temp_libpath38c22015d06/uxlearn/learning-materials/UX-Learning-Workbook.md"
#> answer_key
#> "C:/Users/psanc/AppData/Local/Temp/RtmpUb2nzZ/temp_libpath38c22015d06/uxlearn/learning-materials/Answer-Key.md"
materials
#> workbook
#> "C:/Users/psanc/AppData/Local/Temp/RtmpUb2nzZ/temp_libpath38c22015d06/uxlearn/learning-materials/UX-Learning-Workbook.md"
#> answer_key
#> "C:/Users/psanc/AppData/Local/Temp/RtmpUb2nzZ/temp_libpath38c22015d06/uxlearn/learning-materials/Answer-Key.md"You can also open a specific resource directly:
ux_learning_materials("workbook", open = TRUE)
ux_learning_materials("answer_key", open = TRUE)Generating UX recommendations
The ux_recommendations() function transforms the results
of a learning exercise into structured recommendations and learning
activities.
recommendations <- ux_recommendations(exercise)
recommendations$recommendations
#> task_name success_rate average_time average_errors
#> 1 Complete checkout 53.33 84.34 0.97
#> 2 Add product to cart 56.67 50.79 0.90
#> 3 Create an account 60.00 69.85 0.97
#> 4 Find order information 80.00 57.61 0.73
#> 5 Find a product 83.33 37.77 0.20
#> average_satisfaction priority
#> 1 3.37 High
#> 2 4.43 High
#> 3 3.77 High
#> 4 4.57 Medium
#> 5 5.20 Medium
#> recommendation
#> 1 Investigate task barriers, navigation and interaction difficulties.
#> 2 Investigate task barriers, navigation and interaction difficulties.
#> 3 Investigate task barriers, navigation and interaction difficulties.
#> 4 Review the interaction flow and identify opportunities for improvement.
#> 5 Review the interaction flow and identify opportunities for improvement.
#> learning_activity
#> 1 Conduct a task analysis and identify potential usability barriers.
#> 2 Conduct a task analysis and identify potential usability barriers.
#> 3 Conduct a task analysis and identify potential usability barriers.
#> 4 Compare task performance and propose alternative design solutions.
#> 5 Compare task performance and propose alternative design solutions.Tasks are assigned an educational priority according to their observed success rate:
- High: below 80%.
- Medium: from 80% to below 90%.
- Low: 90% or above.
These thresholds are illustrative teaching rules rather than universal usability benchmarks.
Students can use the recommendations to identify usability barriers, compare alternative design solutions and propose improvements.
Exploring practical case studies
The ux_case_study() function creates contextualised UX
case studies using the package’s educational datasets.
Four domains are available.
E-commerce
ecommerce_case <- ux_case_study(
domain = "ecommerce",
level = "beginner"
)
ecommerce_case$title
#> [1] "UX Case Study: Online shopping platform"
ecommerce_case$usability_results
#> $success_rate
#> [1] 66.67
#>
#> $average_time
#> [1] 60.07
#>
#> $average_errors
#> [1] 0.75
#>
#> $average_satisfaction
#> [1] 4.27Digital banking
banking_case <- ux_case_study(
domain = "banking",
level = "intermediate"
)
banking_case$title
#> [1] "UX Case Study: Digital banking application"
banking_case$usability_results
#> $success_rate
#> [1] 88
#>
#> $average_time
#> [1] 45.66
#>
#> $average_errors
#> [1] 0.59
#>
#> $average_satisfaction
#> [1] 5.02Online education
education_case <- ux_case_study(
domain = "education",
level = "advanced"
)
education_case$title
#> [1] "UX Case Study: Online learning platform"
education_case$usability_results
#> $success_rate
#> [1] 87.33
#>
#> $average_time
#> [1] 50.51
#>
#> $average_errors
#> [1] 0.7
#>
#> $average_satisfaction
#> [1] 5.01E-government
egovernment_case <- ux_case_study(
domain = "e-government",
level = "advanced"
)
egovernment_case$title
#> [1] "UX Case Study: Digital public administration service"
egovernment_case$usability_results
#> $success_rate
#> [1] 84.67
#>
#> $average_time
#> [1] 55.51
#>
#> $average_errors
#> [1] 0.86
#>
#> $average_satisfaction
#> [1] 4.92Each case study combines a practical context, usability results, recommendations and educational activities.
Suggested learning activities
The following activities can be used in university courses, workshops and independent learning.
Activity 1. Understanding usability
Calculate task success, average completion time and errors for a selected dataset. Explain what each metric reveals about the user experience.
Activity 2. Identifying usability problems
Use ux_learning() to analyse a dataset. Identify the
tasks with the lowest success rates and discuss possible causes.
Activity 3. Prioritising design improvements
Generate recommendations with ux_recommendations().
Justify which usability problems should be addressed first.
Activity 4. Comparing digital environments
Compare the four case studies. Discuss how usability challenges differ between e-commerce, banking, education and public administration.
Activity 5. Evidence-based design
Propose an interface improvement based on the observed usability results. Explain which metrics could be used to evaluate whether the proposed improvement works.
Conclusions
The uxlearn package provides an educational environment for exploring UX evaluation through synthetic datasets, usability metrics, structured exercises and practical case studies.
By combining quantitative analysis with guided interpretation and design recommendations, the package supports a progressive approach to learning UX evaluation.
The package is intended for teaching, learning and experimentation. Its synthetic datasets should not be interpreted as empirical evidence about real users or digital services.