This report provides a summary of experience profile and common attributes shared by Lloyds agents and their surveyors that declare an aviation capability. Of the 98 assessors across 54 countries common attributes are identified to deepen understanding of the role that agents have in claims process within the insurance industry.
# Load and preprocess the data
df <- read_csv(csv_file, show_col_types = FALSE)
# Clean and preprocess the data
df <- df %>%
mutate(
qualifications = ifelse(is.na(qualifications), "", qualifications),
years_of_experience = as.numeric(years_of_experience),
# Extract country from agent_location
country = str_extract(agent_location, "\\(([^)]+)\\)") %>%
str_remove_all("[\\(\\)]")
)
# Summary statistics
total_assessors <- nrow(df)
total_countries <- length(unique(df$country))
avg_experience <- round(mean(df$years_of_experience, na.rm = TRUE), 1)
median_experience <- round(median(df$years_of_experience, na.rm = TRUE), 1)
cat("Dataset Summary:")
## Dataset Summary:
cat("\n• Total Assessors:", total_assessors)
##
## • Total Assessors: 98
cat("\n• Countries Represented:", total_countries)
##
## • Countries Represented: 54
cat("\n• Average Experience:", avg_experience, "years")
##
## • Average Experience: 25.6 years
cat("\n• Median Experience:", median_experience, "years")
##
## • Median Experience: 26 years
The analysis identified six primary qualifications among aviation assessors, with the following distribution:
# Split qualifications by '/' and clean them
all_qualifications <- df %>%
filter(!is.na(qualifications), qualifications != "") %>%
pull(qualifications) %>%
str_split(" / ") %>%
unlist() %>%
str_trim() %>%
.[. != ""]
# Count qualifications
qual_counts <- table(all_qualifications) %>%
sort(decreasing = TRUE)
# Create qualifications data frame
qualifications_df <- data.frame(
Qualification = names(qual_counts),
Count = as.numeric(qual_counts),
Percentage = round((as.numeric(qual_counts) / nrow(df)) * 100, 1)
)
# Display table
qualifications_df %>%
kable(caption = "Qualification Distribution Among Aviation Assessors",
col.names = c("Qualification", "Count", "Percentage (%)")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
row_spec(1, bold = TRUE, color = "white", background = "#2E8B57") %>%
row_spec(2, bold = TRUE, color = "white", background = "#4682B4") %>%
row_spec(3, bold = TRUE, color = "white", background = "#4682B4")
| Qualification | Count | Percentage (%) |
|---|---|---|
| Lloyd’s Agency Standards & Values | 71 | 72.4 |
| Technical Cargo Surveying | 40 | 40.8 |
| CCSP1 | 39 | 39.8 |
| CCSP2 | 29 | 29.6 |
| Claims & Recoveries | 14 | 14.3 |
| LLI eTutorial - NOT FOR PUBLIC VIEW | 1 | 1.0 |
# Create qualifications frequency chart
top_quals <- head(qual_counts, 10)
qual_plot_df <- data.frame(
Qualification = names(top_quals),
Count = as.numeric(top_quals)
)
ggplot(qual_plot_df, aes(x = reorder(Qualification, Count), y = Count)) +
geom_col(fill = "steelblue", alpha = 0.7) +
geom_text(aes(label = Count), hjust = -0.3, size = 4) +
coord_flip() +
labs(
title = "Top 10 Most Common Qualifications",
subtitle = "Distribution of qualifications among aviation assessors",
x = "Qualification",
y = "Number of Assessors"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 16, face = "bold"),
plot.subtitle = element_text(size = 12),
axis.text = element_text(size = 10)
)