Data Visualization · Power BI · 2026

AI / ML Job Market
Analysis Dashboard

A portfolio-grade Power BI dashboard uncovering global salary trends, top-paying roles, and career trajectories across 151,000+ real-world AI & Data Science job records spanning 2020–2025.

Scroll to explore
0
Median Salary (USD)
K · All experience levels
0
Maximum Salary (USD)
K · Executive-level peak
0
Total Job Records
K · Real-world global data
0
Remote Jobs
% · Fully remote roles
Live Preview

The Dashboard

A single-page interactive Power BI dashboard with 7 visuals, 4 slicers, and 9 DAX measures — built for both class presentation and portfolio showcasing.

app.powerbi.com · AI / ML Job Market Analysis — Dashboard · Siddharth Sadhu · Adani University
AU
ADANI UNIVERSITY
AI / ML Job Market Analysis — Dashboard
⬡ LIVE DEMO ↗
147.00K
Median Salary
800.00K
Max Salary
151K
Total Jobs
20.76
Remote Jobs %
Top 10 Highest Paying AI/ML Roles
Research Team Lead
Analytics Eng...
Data Science Lead
Applied AI/ML Lead
Head of ML
IT Enterprise DA...
Salary Growth Trend by Experience (2020–2025)
Executive Senior Mid Entry
2020 2022 2025
Salary Band Distribution
67% Mid Band MidHighLow
Avg Salary by Experience
Exec
Senior
Mid
Entry
Global AI/ML Job Distribution
N.AMERICA EUROPE ASIA
Avg Salary by Company Size
Large$158K
Medium$142K
Small$98K
Work Year: 2020–2025
Experience: All Levels
Company Size: All
Work Mode: All
Data Source

Dataset Details

Complete information about the dataset — its origin, structure, size, and every column explained.

CSV
Total Records151,000+ rows
Columns Used9 (cleaned from 11)
Year Range2020 – 2025
LicenseCC0 Public Domain
FormatsCSV JSON
Data SourcesAIJobs, Payscale, KDnuggets, ZipRecruiter
Geographic ScopeGlobal · 60+ countries
CurrencyAll normalized to USD
Columns Removedsalary (raw) salary_currency
Real-world dataMulti-country 2020–2025AI/ML focused 151K+ recordsFree on Kaggle
Download Dataset ↗ View Live Dashboard ↗
9 Column Reference
Work Year
Whole Number
Year the salary was recorded. Ranges from 2020–2025. Used as X-axis in the salary trend line chart.
Experience Level
Text · Entry/Mid/Senior/Executive
Career stage. Decoded from EN/MI/SE/EX in Power Query. Primary slicer and analysis dimension.
Employment Type
Text · Full-Time only
Filtered to Full-Time for consistent benchmarks. PT/CT/FL records removed in Power Query.
Job Title
Text · 80+ unique roles
Specific role name. ML Engineer, Data Scientist, AI Researcher etc. Used in Top 10 bar chart.
Salary (USD)
Decimal · USD normalized
All salaries normalized to USD. Raw multi-currency column removed to prevent incorrect aggregation.
Employee Country
Text · ISO code
Country where the employee lives. May differ from Company Country for remote workers.
Work Mode
Text · Onsite/Hybrid/Remote
Decoded from 0/50/100. Powers the Remote Jobs % KPI card measure.
Company Country
Text · ISO code
Where the hiring company is based. Used in map visual for geographic job distribution.
Company Size
Text · Small/Medium/Large
Decoded from S/M/L in Power Query. Used in salary comparison bar chart and slicer.
Findings

Key Insights

Six data-backed discoveries from 151K+ records that decode the AI/ML job market.

01 · TOP ROLES
Research Team Lead commands the highest compensation
Leadership AI roles significantly outpace pure engineering positions, signaling that cross-functional expertise is valued above deep technical skill alone at the senior level.
$350K+
02 · EXPERIENCE
Executive earns nearly 2× entry-level salary
Experience is the strongest single predictor of compensation in AI/ML — outweighing geography, company size, or specific job title in most cases across all regions.
~2× gap
03 · REMOTE WORK
Only 20.76% of AI/ML jobs are truly remote
Despite the remote-first tech narrative, the majority of AI/ML roles remain onsite or hybrid — suggesting lab access, hardware requirements, or team collaboration needs.
20.76%
04 · SALARY BANDS
67% of all roles fall in the $60K–$120K mid band
The workforce concentrates in the mid range. The High band (28.36%) is reserved primarily for Senior/Executive roles at large companies, especially in North America.
67% mid
05 · COMPANY SIZE
Large companies pay 61% more than small firms
Large orgs average $158K vs $98K at small companies. However, some startups match or exceed this for niche AI specializations like LLM research or autonomous systems.
+61%
06 · GROWTH TREND
Salaries have grown every year from 2020–2025
The line chart shows consistent growth across all experience levels, with the sharpest acceleration occurring post-2022 — coinciding directly with the generative AI hiring surge.
↑ 5yr trend
Dashboard Guide

How to Interpret the Dashboard

A visual-by-visual guide — what each chart shows, how to read it correctly, and how slicers interact.

KPI
The 4 KPI Cards (Top Row)
Show Median Salary, Max Salary, Total Jobs, and Remote Jobs % for the currently filtered data. All four update dynamically with every slicer click. Median is used (not average) to avoid distortion from extreme executive salaries pulling the number unrealistically high.
Try: Click "Entry Level" in the Experience slicer to benchmark what a fresh AI/ML graduate earns.
BAR
Top 10 Paying Roles (Bar Chart)
Ranked by Average Salary (USD) with a Top N filter showing only the top 10 titles. Longer bar = higher average. Job titles may be truncated — hover to see the full name. Changing slicers will shift which roles appear and their rankings.
Try: Filter to "Large" company + "Senior Level" to see elite compensation benchmarks.
LINE
Salary Growth Trend (Line Chart)
Shows average salary over time (2020–2025) broken by experience level. Four lines = Entry, Mid, Senior, Executive. The widening gap between lines over time shows senior professionals have benefited most from AI demand growth.
The sharp uptick from 2022–2023 correlates directly with the ChatGPT-driven AI hiring surge.
DO
Salary Band Distribution (Donut Chart)
Categorizes all records into Low (<$60K), Mid ($60K–$120K), and High (>$120K) using the DAX calculated column "Salary Band". The 67% Mid figure shifts when filtering to Senior+ only. This is NOT a raw data field — it was created with nested IF statements in DAX.
This chart demonstrates the Salary Band calculated column — mention this in your viva.
MAP
Global Job Distribution (Map)
Bubble size = number of job records per country. North America and Europe dominate. Note: shows Company Country (employer location), not Employee Country, which may differ for remote workers. US concentration is why the median salary ($147K) appears high globally.
Select "Remote" in Work Mode slicer to see how geographic distribution changes for remote roles.
SLI
4 Slicers — Interactive Filters
Work Year, Experience Level, Company Size, and Work Mode all control every visual simultaneously. Cross-filtering is fully enabled — clicking a bar in any chart also filters all other visuals. Use combinations like "Remote + Entry + Large" for targeted analysis.
Hold Ctrl and click multiple options in a slicer to select more than one value at a time.
Visual Inventory

All 9 Visuals & Components

Every visual used — its type, data fields mapped, and the story it tells.

Card Visual × 4
KPI Cards
Median Salary, Max Salary, Total Jobs, Remote Jobs %. DAX-powered. Update with every slicer interaction.
Clustered Bar Chart
Top 10 Paying Roles
Y: Job Title · X: Avg Salary · Top N filter = 10. Benchmark for role-level compensation.
Line Chart
Salary Trend by Experience
X: Work Year · Y: Avg Salary · Legend: Experience Level. Shows 5-year career salary growth.
Donut Chart
Salary Band Distribution
Legend: Salary Band (calculated column) · Values: Total Jobs. Low / Mid / High tier breakdown.
Clustered Column Chart
Avg Salary by Experience
X: Experience Level · Y: Avg Salary. Clear visual proof experience = #1 salary driver.
Map Visual
Global Job Distribution
Location: Company Country · Size: Total Jobs. Geographic concentration of AI/ML employment.
Clustered Bar Chart
Avg Salary by Company Size
Y: Company Size · X: Avg Salary. Compares Small, Medium, Large org compensation.
Slicer × 4
Interactive Filters
Work Year (range slider), Experience Level, Company Size, Work Mode. All enable cross-filtering.
Text Box + Image
Header & Branding
Adani University logo, dashboard title, Live Demo button. Professional page anchoring elements.
Process

Project Methodology

Step-by-step walkthrough of how this was built — from raw CSV to polished, interactive dashboard.

01
Data Acquisition
Dataset Selection & Import
Selected the Kaggle AI/ML Salaries 2025 dataset for real-world relevance, recency, and domain alignment with the AI/ML career trajectory.
Identified CC0 licensed dataset with 151K+ records
Downloaded CSV from Kaggle
Loaded via Power BI's native Get Data → CSV connector
02
Power Query
Data Cleaning & Transformation
Used Power Query Editor to clean, decode, and reshape the raw dataset into an analysis-ready format before loading into the model.
Removed raw salary + salary_currency columns
Decoded EN/MI/SE/EX → readable labels
Decoded 0/50/100 → Onsite/Hybrid/Remote
Decoded S/M/L → Small/Medium/Large
Renamed all 9 columns for readability
Filtered to Full-Time employment only
03
Data Modeling
Model Structure & Measures Table
Single flat table model — all dimensions embedded in the fact table. A dedicated _Measures table separates all DAX calculations from raw data columns.
Single table — no relationships needed
Created _Measures table (professional best practice)
Used Dummy column placeholder to keep table visible
04
DAX
Measures & Calculated Columns
Built 7 measures and 2 calculated columns covering aggregations, conditional filtering, and salary categorization using CALCULATE, DIVIDE, and nested IF.
7 measures in _Measures table
2 calculated columns on fact table
CALCULATE used for conditional filter overrides
DIVIDE used for safe % calculation
05
Visualization
Dashboard Layout & Design
Designed a single-page layout with structured visual hierarchy — header, KPI row, two chart rows, and interactive slicer panel. Visual types chosen to best represent each data story.
7 visuals + 4 slicers on single page
Consistent titles, labels, legends across all visuals
Cross-filtering enabled on all visuals
Logo and Live Demo button in header
06
Review & Polish
Validation & Final Formatting
Reviewed all visuals for accuracy, updated deprecated visual types, verified slicer interactions, formatted charts with proper titles and labels.
Replaced deprecated Card visual with new version
Fixed map visual retirement warning
Tested all 4 slicers for cross-filter behavior
Final layout alignment using Power BI align tools
Tech Stack
Power BI DesktopPower Query EditorDAX Kaggle DatasetCSV Format Azure Maps VisualData Modeling
DAX Reference

All DAX Measures & Columns

Every formula used — with syntax highlighting and explanation of logic and purpose.

Avg SalaryMeasure
Avg Salary = AVERAGE(AI_Job_Salaries[Salary (USD)])
Average salary across all filtered records. Updates dynamically with every slicer interaction.
Median SalaryMeasure · KPI Card
Median Salary = MEDIAN(AI_Job_Salaries[Salary (USD)])
Primary KPI metric. Median preferred over average — less affected by extreme executive outliers that distort the true typical salary.
Max SalaryMeasure
Max Salary = MAX(AI_Job_Salaries[Salary (USD)])
Returns the single highest salary in the currently filtered dataset. Shows the compensation ceiling.
Total JobsMeasure
Total Jobs = COUNTROWS(AI_Job_Salaries)
Counts rows in current filter context. Reflects the sample size powering all other calculations.
Remote Jobs %Measure · Advanced
Remote Jobs % = DIVIDE( CALCULATE( COUNTROWS(AI_Job_Salaries), AI_Job_Salaries[Work Mode] = "Remote" ), COUNTROWS(AI_Job_Salaries), 0 ) * 100
CALCULATE applies an additional filter (Remote only) inside the existing context. DIVIDE handles zero-division safely when no rows match.
Senior+ Avg SalaryMeasure · Advanced
Senior+ Avg Salary = CALCULATE( AVERAGE(AI_Job_Salaries[Salary (USD)]), AI_Job_Salaries[Experience Level] IN {"Senior Level", "Executive Level"} )
Overrides external filter context to isolate Senior and Executive levels — demonstrates advanced CALCULATE usage with IN operator.
Entry Level Avg SalaryMeasure
Entry Level Avg Salary = CALCULATE( AVERAGE(AI_Job_Salaries[Salary (USD)]), AI_Job_Salaries[Experience Level] = "Entry Level" )
Benchmarks fresh graduate earning potential. Compare against Senior+ Avg to quantify the career growth opportunity over time.
Salary BandCalculated Column
Salary Band = IF(AI_Job_Salaries[Salary (USD)] < 60000, "Low (< $60K)", IF(AI_Job_Salaries[Salary (USD)] < 120000, "Mid ($60K–$120K)", "High (> $120K)"))
Computed row-by-row, stored in the table. Enables the Donut Chart's categorical salary tier analysis across the dataset.
Is SeniorCalculated Column
Is Senior = IF( AI_Job_Salaries[Experience Level] IN {"Senior Level", "Executive Level"}, "Senior+", "Junior/Mid" )
Binary flag for senior/non-senior segmentation. Enables quick slicer-based filtering between career tiers.
FAQ

Frequently Asked Questions

Common questions about this dashboard, the data, and the methodology — including likely viva questions.

Why is Median Salary the KPI instead of Average?+
Salary distributions are right-skewed — a small number of executive roles earning $500K–$800K pull the arithmetic mean significantly upward, making it appear higher than what most professionals actually earn. The median is the midpoint of all salaries and represents what a "typical" AI/ML professional earns far more accurately. This is the same methodology used by government salary surveys and HR benchmarking companies worldwide.
Why was the raw salary column removed?+
The raw salary column contains values in 40+ different currencies — USD, INR, EUR, JPY, and more. If used in any aggregation, Power BI treats all numbers as if they share the same unit, producing completely meaningless results. For example, $80,000 USD and ₹80,00,000 INR would be treated as equal. The salary_in_usd column normalizes all values using real exchange rates, enabling accurate cross-country comparison. Keeping the raw column risks someone accidentally using it and generating incorrect charts.
The median shows $147K — is that a realistic global salary?+
Yes — but with important context. The dataset is heavily weighted toward US-based companies, which dominate the global AI/ML hiring market and pay among the world's highest salaries. For India-based roles, figures are significantly lower. This is exactly why the Company Country filter and map visual exist — use them to filter for your specific region to get locally relevant benchmarks. The global median figure is most useful for understanding the overall market ceiling rather than local expectations.
What is the difference between a Measure and a Calculated Column?+
A Calculated Column is evaluated row-by-row at data load time and stored permanently in the table — like adding a new Excel column. It exists in the model and consumes memory. A Measure is computed dynamically at query time based on the current filter context — it recalculates every time you interact with a slicer or visual. Measures are more memory-efficient and are the preferred approach for aggregations like sums, averages, and percentages. In this project, Salary Band and Is Senior are calculated columns; everything else is a measure.
How does CALCULATE work, and why is it needed for Remote Jobs %?+
CALCULATE is the most powerful function in DAX. It evaluates an expression while simultaneously modifying the filter context — adding or overriding filters on top of whatever slicers are already active. In Remote Jobs %, we need to count only rows where Work Mode equals "Remote" regardless of what the Work Mode slicer says. Without CALCULATE, there is no way to apply conditional filters inside a measure. DIVIDE is then used instead of the division operator to gracefully handle cases where the denominator is zero.
How would you extend this into a Machine Learning project?+
This dataset is an ideal foundation for a salary prediction model. Using Experience Level, Job Title, Company Size, Work Mode, and Company Country as input features with Salary (USD) as the target variable, a regression model using Random Forest or XGBoost could predict expected compensation for any role profile. Feature importance analysis would likely confirm what this dashboard already shows — Experience Level is the dominant predictor, followed by Job Title and Company Country. This connects directly to ongoing work in SaralAI and future ML projects.
SS
Siddharth Sadhu
B.Tech ICT · Adani University
Ahmedabad, Gujarat · 2024–2027
CGPA: 8.77
About the Author

Pre-final year developer targeting AI/ML & Data Science roles

I'm a Backend-focused Software Developer with a CGPA of 8.77 at Adani University, building full-stack applications and applying machine learning in real-world contexts. This Power BI project is part of my Data Visualization coursework — but more importantly, it's a genuine deep-dive into the industry I'm actively entering.

I chose the AI/ML job market dataset intentionally. Understanding which roles pay the most, how salaries have grown post-2022, and what percentage of jobs are truly remote gives me strategic clarity as I approach the final stretch of my degree and the start of my career.

Notable work includes SaralAI (a multilingual NLP platform), an SSIP-selected Smart Glasses assistive system, and the Deloitte Data Analytics Virtual Experience. My belief: the best projects are ones you'd build even if there was no grade for it.

LinkedIn ↗ GitHub ↗ Email ↗
PythonFastAPIReact.jsPower BI Machine LearningDAXMySQLNode.js SSIP SelectedCGPA 8.77Deloitte Analytics