General · Universal · Any · Data Explorer
Overview

Analysis Overview

Analysis overview and configuration

Analysis TypeUniversal Data Explorer
CompanyIBM HR Analytics
ObjectiveExplore employee dataset — demographics, compensation, and satisfaction patterns
Analysis Date2026-03-12
Processing Idtest_1773379850
Total Observations500
ParameterValue_row
cardsc("dept_breakdown", "income_by_dept", "income_by_age", "income_satisfaction_tenure", "age_vs_income", "income_by_education", "age_histogram", "attrition_by_travel", "distance_income", "satisfaction_by_role_years", "income_wlb_by_level", "experience_vs_income", "income_by_marital", "income_histogram", "edu_satisfaction_heatmap", "job_role_stats", "dept_summary"), c("bar", "bar", "line", "line", "scatter", "box", "histogram", "bar", "line", "line", "line", "scatter", "box", "histogram", "heatmap", "table", "table"), c("Employees by Department", "Average Monthly Income by Department", "Average Income by Age", "Income & Satisfaction by Years at Company", "Age vs Monthly Income", "Income Distribution by Education Level", "Age Distribution", "Attrition Count by Business Travel", "Average Income by Distance from Home", "Job Satisfaction by Years in Current Role", "Income & Work-Life Balance by Job Level", "Total Working Years vs Monthly Income", "Income Distribution by Marital Status", "Monthly Income Distribution", "Education Level vs Job Satisfaction", "Job Role Summary Statistics", "Department Summary"), c("Department", "Department", "Age", "Years at Company", "Age", "Education", "Age", "Business Travel", "Distance (miles)", "Years in Current Role", "Job Level", "Total Working Years", "Marital Status", "Monthly Income", "Education Level", NA, NA), c("Count", "Avg Monthly Income", "Avg Monthly Income", "Avg Monthly Income", "Monthly Income", "Monthly Income", "Count", "Attrition Count", "Avg Monthly Income", "Avg Satisfaction", "Avg Monthly Income", "Monthly Income", "Monthly Income", "Count", "Job Satisfaction", NA, NA), c("\n freq <- as.data.frame(table(df$Department), stringsAsFactors = FALSE)\n colnames(freq) <- c('category', 'value')\n freq[order(-freq$value), ]\n ", "\n agg <- aggregate(MonthlyIncome ~ Department, data = df, FUN = mean)\n data.frame(category = agg$Department, value = round(agg$MonthlyIncome, 0))\n ", "\n agg <- aggregate(MonthlyIncome ~ Age, data = df, FUN = mean)\n agg <- agg[order(agg$Age), ]\n data.frame(x = agg$Age, y = round(agg$MonthlyIncome, 0))\n ", "\n agg1 <- aggregate(MonthlyIncome ~ YearsAtCompany, data = df, FUN = mean)\n agg2 <- aggregate(JobSatisfaction ~ YearsAtCompany, data = df, FUN = mean)\n merged <- merge(agg1, agg2, by = 'YearsAtCompany')\n merged <- merged[order(merged$YearsAtCompany), ]\n data.frame(x = merged$YearsAtCompany, y = round(merged$MonthlyIncome, 0), y2 = round(merged$JobSatisfaction, 2))\n ", "\n data.frame(x = df$Age, y = df$MonthlyIncome)\n ", "\n edu_labels <- c('1' = 'Below College', '2' = 'College', '3' = 'Bachelor', '4' = 'Master', '5' = 'Doctor')\n data.frame(group = edu_labels[as.character(df$Education)], value = df$MonthlyIncome)\n ", "\n data.frame(value = df$Age)\n ", "\n att <- df[df$Attrition == 'Yes', ]\n freq <- as.data.frame(table(att$BusinessTravel), stringsAsFactors = FALSE)\n colnames(freq) <- c('category', 'value')\n freq[order(-freq$value), ]\n ", "\n agg <- aggregate(MonthlyIncome ~ DistanceFromHome, data = df, FUN = mean)\n agg <- agg[order(agg$DistanceFromHome), ]\n data.frame(x = agg$DistanceFromHome, y = round(agg$MonthlyIncome, 0))\n ", "\n agg <- aggregate(JobSatisfaction ~ YearsInCurrentRole, data = df, FUN = mean)\n agg <- agg[order(agg$YearsInCurrentRole), ]\n data.frame(x = agg$YearsInCurrentRole, y = round(agg$JobSatisfaction, 2))\n ", "\n agg1 <- aggregate(MonthlyIncome ~ JobLevel, data = df, FUN = mean)\n agg2 <- aggregate(WorkLifeBalance ~ JobLevel, data = df, FUN = mean)\n merged <- merge(agg1, agg2, by = 'JobLevel')\n merged <- merged[order(merged$JobLevel), ]\n data.frame(x = merged$JobLevel, y = round(merged$MonthlyIncome, 0), y2 = round(merged$WorkLifeBalance, 2))\n ", "\n data.frame(x = df$TotalWorkingYears, y = df$MonthlyIncome)\n ", "\n data.frame(group = df$MaritalStatus, value = df$MonthlyIncome)\n ", "\n data.frame(value = df$MonthlyIncome)\n ", "\n ct <- as.data.frame(table(Education = df$Education, Satisfaction = df$JobSatisfaction), stringsAsFactors = FALSE)\n data.frame(x = ct$Education, y = ct$Satisfaction, z = ct$Freq)\n ", "\n roles <- unique(df$JobRole)\n do.call(rbind, lapply(roles, function(r) {\n subset_df <- df[df$JobRole == r, ]\n data.frame(\n JobRole = r,\n Count = nrow(subset_df),\n AvgIncome = round(mean(subset_df$MonthlyIncome), 0),\n AvgAge = round(mean(subset_df$Age), 1),\n AvgSatisfaction = round(mean(subset_df$JobSatisfaction), 2),\n stringsAsFactors = FALSE\n )\n }))\n ", "\n depts <- unique(df$Department)\n do.call(rbind, lapply(depts, function(d) {\n subset_df <- df[df$Department == d, ]\n data.frame(\n Department = d,\n Employees = nrow(subset_df),\n AvgIncome = round(mean(subset_df$MonthlyIncome), 0),\n AttritionRate = round(sum(subset_df$Attrition == 'Yes') / nrow(subset_df) * 100, 1),\n AvgTenure = round(mean(subset_df$YearsAtCompany), 1),\n stringsAsFactors = FALSE\n )\n }))\n " ), c(NA, NA, NA, "Avg Job Satisfaction", NA, NA, NA, NA, NA, NA, "Avg Work-Life Balance", NA, NA, NA, NA, NA, NA)cards

Data preprocessing and column mapping

Initial Rows500
Final Rows500
Rows Removed0
Retention Rate100
Executive Summary

Executive Summary

Executive summary — key findings from the data exploration

total_rows
500
total_columns
35
cards_generated
17
cards_failed
0
Explored dataset with 500 rows and 35 columns. 17 of 17 requested visualizations generated successfully. Visualization cards generated: - Employees by Department (bar) - Average Monthly Income by Department (bar) - Average Income by Age (line) - Income & Satisfaction by Years at Company (line) - Age vs Monthly Income (scatter) - Income Distribution by Education Level (box) - Age Distribution (histogram) - Attrition Count by Business Travel (bar) - Average Income by Distance from Home (line) - Job Satisfaction by Years in Current Role (line) - Income & Work-Life Balance by Job Level (line) - Total Working Years vs Monthly Income (scatter) - Income Distribution by Marital Status (box) - Monthly Income Distribution (histogram) - Education Level vs Job Satisfaction (heatmap) - Job Role Summary Statistics (table) - Department Summary (table)
Visualization

Bar Chart

Employees by Department

Visualization

Bar Chart

Average Monthly Income by Department

Visualization

Bar Chart

Attrition Count by Business Travel

Visualization

Line Chart

Average Income by Age

Visualization

Line Chart

Average Income by Distance from Home

Visualization

Line Chart

Job Satisfaction by Years in Current Role

Visualization

Dual Line Chart

Income & Satisfaction by Years at Company

Visualization

Dual Line Chart

Income & Work-Life Balance by Job Level

Visualization

Scatter Plot

Age vs Monthly Income

Visualization

Scatter Plot

Total Working Years vs Monthly Income

Visualization

Box Plot

Income Distribution by Education Level

Visualization

Box Plot

Income Distribution by Marital Status

Visualization

Histogram

Age Distribution

Visualization

Histogram

Monthly Income Distribution

Visualization

Heatmap

Education Level vs Job Satisfaction

Data Table

Data Table

Job Role Summary Statistics

JobRoleCountAvgIncomeAvgAgeAvgSatisfaction
Sales Executive108691636.12.94
Research Scientist99334534.32.75
Laboratory Technician93312634.32.85
Manufacturing Director48657637.72.75
Healthcare Representative40815041.52.85
Manager421671446.12.81
Sales Representative30255730.22.53
Research Director291590143.42.76
Human Resources11445435.82.55
Data Table

Data Table

Department Summary

DepartmentEmployeesAvgIncomeAttritionRateAvgTenure
Sales1536966197.5
Research & Development333639713.56.9
Human Resources14738328.66.1
Want to run this analysis on your own data? Upload CSV — Free Analysis See Pricing