Ensuring customer satisfaction is instrumental for businesses to thrive. While providing exceptional service, offering high-quality products, selecting convenient locations, and crafting positive customer experiences are all crucial elements, however it’s unrealistic to excel in every aspect simultaneously. It could lead to unwise financial investment to overdo or over-delivery in all aspects and it is impossible as well.
Customer satisfaction leads to higher customer loyalty and, ultimately, higher profit and growth for the organization (Heskett 2008).
The key lies in identifying the specific metrics of the product or service that are most valued and appreciated by customers. By focusing on these critical areas, company can maximize customer satisfaction and optimize resource allocation.
A restaurant chain, seeking to understand which aspects of their offering hold the greatest importance to their customers, conducted a comprehensive marketing survey using a meticulously designed questionnaire. This endeavor aimed to identify the key metrics that drive customer satisfaction and assess the restaurant’s performance in these areas by implementing a so-called Importance-Performance Matrix Analysis.
The questionnaire structure is made by two parts. The first part includes demographic characteristics of the responds, including:
Gender, including Female, Male and the third gender.
Age range, including three age ranges, 15-30, 31-45 and 45+
Area
Diet habit, such as vegetarian, non-vegetarian, no preference and so on
Most often used meal type, such as breakfast, lunch, supper, evening snack or other
The location of the most visited restaurants, such as City Center, Road side, shopping centers, airport/train station and so on.
The second part is to pick a rating on the following metrics using a scale of 1 to 7, where 1 indicates the least favorable or most disagree and 7 indicates the most favorable or most agree.
overall satisfaction
food variety
meal quality
food taste
wait time for food
ordering process
meal price
location convenience
staff friendliness
promotion attractiveness
social responsibility
The company tends to determine which of these areas are important to their customers, which are less important, and whether there is a need to improve the metrics that are valued. There are certainly more variables or metrics that company can consider as the factors impacting customer satisfactory.
The responded questionnaire was collected by survey team, which can be used for further analysis.
| Name | dataframe |
| Number of rows | 208 |
| Number of columns | 17 |
| _______________________ | |
| Column type frequency: | |
| character | 6 |
| numeric | 11 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| gender | 0 | 1 | 4 | 25 | 0 | 3 | 0 |
| age | 0 | 1 | 3 | 5 | 0 | 3 | 0 |
| country | 0 | 1 | 1 | 24 | 0 | 58 | 0 |
| diet | 0 | 1 | 5 | 14 | 0 | 4 | 0 |
| mealtype | 0 | 1 | 5 | 13 | 0 | 6 | 0 |
| placeofvisit | 0 | 1 | 5 | 23 | 0 | 6 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 |
|---|---|---|---|---|---|---|---|---|---|
| overall_satisfaction - select a rating | 0 | 1 | 5.15 | 1.61 | 1 | 4 | 6 | 6.00 | 7 |
| food_variety - select a rating | 0 | 1 | 4.88 | 1.64 | 1 | 4 | 5 | 6.00 | 7 |
| meal_quality - select a rating | 0 | 1 | 4.98 | 1.71 | 1 | 4 | 5 | 6.00 | 7 |
| food_taste - select a rating | 0 | 1 | 5.23 | 1.55 | 1 | 5 | 6 | 6.00 | 7 |
| wait_time_food - select a rating | 0 | 1 | 5.52 | 1.44 | 1 | 5 | 6 | 7.00 | 7 |
| ordering_process - select a rating | 0 | 1 | 5.44 | 1.49 | 1 | 5 | 6 | 6.25 | 7 |
| meal_price - select a rating | 0 | 1 | 4.68 | 1.66 | 1 | 3 | 5 | 6.00 | 7 |
| location_convenience - select a rating | 0 | 1 | 5.46 | 1.47 | 1 | 5 | 6 | 6.00 | 7 |
| staff_friendliness - select a rating | 0 | 1 | 5.35 | 1.47 | 1 | 4 | 6 | 6.00 | 7 |
| promotion_attractiveness - select a rating | 0 | 1 | 4.66 | 1.63 | 1 | 4 | 5 | 6.00 | 7 |
| social_responsibility - select a rating | 0 | 1 | 4.46 | 1.66 | 1 | 4 | 5 | 6.00 | 7 |
The number of missing values in the dataset.
## [1] 0
As this value is 0, this stats there is no missing value in the dataset.
All duplicate rows are removed.
Then we will check whether the number of rating values beyond the range in the dataset.
The rating values either under 1, or over 7 are considered as wrong inputs.
## [1] 0
There is no rating value either less than 1 nor larger than 7. All lie within the range
The names for all variables are tuned.
## [1] 207 17
The number of rows and columns of the dataset after cleaning, namely 207 rows (or 207 observations) and 17 columns.
Among 207 responds, the percentages in three age groups are 37% (15-30 years old), 54% (30-45) and 9% (45+) individually.
From the chart, the three most visited locations for the restaurants are shopping malls, road side and city center.
From the visual, it is interesting to see that male customers visit this fast-food brand more for dinner and evening snack. Over one-fifth (25/112) male aging from 30 - 45 will visit the restaurant for lunch.
There are many more mesmerizing insights can be digged out, however we aim to concentrate on Importance-Performance Matrix Analysis in this case study.
All the metrics are positively correlated with overall_satisfaction at different degrees. But we still cannot say to what extent these metrics can significantly impact the overall_satisfaction.
All the intercept, coefficients and p-values of the variables are presented.
The model can explain nearly 75% of the variation in overall_satisfaction is explained in this mode, while 25% variation cannot be explained. However, the result of the explanation of this model is still quite satisfactory.
The metrics positioned toward the right side of the x-axis play a pivotal role in influencing overall satisfaction. The farther to the right they are, the more significant their impact on the general satisfaction level. Accordingly, it is crucial for the company to enhance performance in these areas by allocating appropriate resources.
In this context, two standout metrics are meal_quality and food_variety.
Put differently, the expectation is that metrics positioned towards the extreme right of the x-axis should register as high as possible. This signifies that the company has excelled in these aspects.
Conversely, metrics situated towards the left side of the x-axis do not exhibit a noteworthy influence on overall satisfaction.
From the visual of benchmarking, it is even more clear which aspects the company should improve or maintain as they are now.
The purpose of this study is for research purposes only and does not necessarily reflect the real-world situation for any fast food restaurant chains or similar businesses. Meanwhile, the study findings are not intended to be used for any commercial purposes.
Last but not least, the sincere gratitude goes to my colleagues for conducting the marketing survey and providing the questionnaire.
## R version 4.3.2 (2023-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.6 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
## LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3; LAPACK version 3.9.0
##
## locale:
## [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
## [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
## [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
## [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
##
## time zone: UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] ggrepel_0.9.4 ggcorrplot_0.1.4.1 ggtext_0.1.2 ggpubr_0.6.0
## [5] janitor_2.2.0 skimr_2.1.5 lubridate_1.9.3 forcats_1.0.0
## [9] stringr_1.5.1 dplyr_1.1.4 purrr_1.0.2 readr_2.1.4
## [13] tidyr_1.3.0 tibble_3.2.1 ggplot2_3.4.4 tidyverse_2.0.0
## [17] readxl_1.4.3
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.4 xfun_0.41 bslib_0.5.1 psych_2.3.9
## [5] rstatix_0.7.2 lattice_0.21-9 tzdb_0.4.0 vctrs_0.6.4
## [9] tools_4.3.2 generics_0.1.3 parallel_4.3.2 fansi_1.0.5
## [13] highr_0.10 pkgconfig_2.0.3 lifecycle_1.0.4 compiler_4.3.2
## [17] farver_2.1.1 textshaping_0.3.7 munsell_0.5.0 mnormt_2.1.1
## [21] repr_1.1.6 carData_3.0-5 snakecase_0.11.1 htmltools_0.5.7
## [25] sass_0.4.7 yaml_2.3.7 car_3.1-2 pillar_1.9.0
## [29] jquerylib_0.1.4 cachem_1.0.8 abind_1.4-5 nlme_3.1-163
## [33] tidyselect_1.2.0 digest_0.6.33 stringi_1.8.1 reshape2_1.4.4
## [37] labeling_0.4.3 cowplot_1.1.1 fastmap_1.1.1 grid_4.3.2
## [41] colorspace_2.1-0 cli_3.6.1 magrittr_2.0.3 base64enc_0.1-3
## [45] utf8_1.2.4 broom_1.0.5 withr_2.5.2 backports_1.4.1
## [49] scales_1.2.1 timechange_0.2.0 rmarkdown_2.25 ggsignif_0.6.4
## [53] cellranger_1.1.0 ragg_1.2.6 hms_1.1.3 evaluate_0.23
## [57] knitr_1.45 rlang_1.1.2 Rcpp_1.0.11 gridtext_0.1.5
## [61] glue_1.6.2 xml2_1.3.5 rstudioapi_0.15.0 jsonlite_1.8.7
## [65] plyr_1.8.9 R6_2.5.1 systemfonts_1.0.5