1. Background of the Study

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.

2. Questionaire and its Structure

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.

3 Loading the dataset

3.1 Check the dataframe

Data summary
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

3.2 Clean up the dataset

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.

3.3 Holistic view of visulization

4. Statistical Descprition

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.

5. Importance-Performance Analysis

5.1 Correlation Heatmap

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.

5.2 Build multiple linear regression analytical model

Summary of the Multiple Linear Regression Model
Summary of the Multiple Linear Regression Model

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.

5.3 Plot Importance-Performance Matrix

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.

Action Direction
Action Direction

From the visual of benchmarking, it is even more clear which aspects the company should improve or maintain as they are now.

6. Contact of the Author

Ned lin MBA @ EMST Berlin

Email:

My LinkedIn link

7. Disclaimer

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.

8. Version of R

## 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