HR Analytics Dashboard in Power BI: Workforce Insights
People Analytics ist die am schnellsten wachsende Anwendung von Business Intelligence im Unternehmen – und das aus gutem Grund. Unternehmen mit ausgereiften HR-Analyseprogrammen erzielen im Dreijahresdurchschnitt einen um 82 % höheren Gewinn als Unternehmen mit minimalen Personaldatenfunktionen (Deloitte Human Capital Trends). Dennoch verfolgen die meisten HR-Teams den Personalbestand immer noch in Excel-Tabellen und berechnen den Umsatz manuell in Google Sheets.
Power BI bietet HR-Führungskräften die gleiche analytische Tiefe, über die Finanz- und Vertriebsteams seit Jahren verfügen – Echtzeit-Transparenz des Personalbestands, automatisierte Fluktuationsberechnungen, Diversitätsanalysen und Verfolgung des Mitarbeiterlebenszyklus über die gesamte Mitarbeiterreise von der Einstellung bis zum Offboarding.
Dieser Leitfaden erstellt eine vollständige HR-Analyseplattform in Power BI, die das Datenmodell, jeden kritischen HR-KPI mit seiner DAX-Formel und die Dashboard-Seiten abdeckt, die echte Personalentscheidungen vorantreiben.
Wichtige Erkenntnisse
- HR-Analysen erfordern einen SCD-Ansatz (Slow Changing Dimension) für den historischen Personalbestand
- Bei der Berechnung der Fluktuationsrate muss zwischen freiwilligen und unfreiwilligen Trennungen unterschieden werden
- Diversity-Dashboards erfordern ein sorgfältiges Datenschutzdesign – aggregiert, niemals auf individueller Ebene, wenn dies unangemessen ist
- Die Analyse des Mitarbeiterlebenszyklus verfolgt die Zeit bis zur Einstellung, die Zeit bis zur Produktivität und die Bindungskurven
- Abwesenheitsanalysen (Bradford-Faktor, Abwesenheitshäufigkeit) lassen sich in Gehaltsabrechnungsdaten integrieren
- DAX-Kennzahlen für die Mitarbeiterzahl sind punktuell (nicht summiert) – erfordern spezielle Berechnungsmuster
- HRIS-Systeme (Workday, SAP SuccessFactors, BambooHR) verfügen alle über Power BI-Anschlüsse – Die Sicherheit auf Zeilenebene muss HR-Daten auf autorisierte HR-Geschäftspartner und Manager beschränken
Datenmodell für HR Analytics
Kern-HR-Tabellen
Employee_Snapshot (sich langsam ändernd, eine Zeile pro Mitarbeiter und Monat):
| Spalte | Beschreibung |
|---|---|
EmployeeID | Mitarbeiterkennung |
SnapshotDate | Monatsenddatum des Snapshots |
Status | Aktiv, beurlaubt, gekündigt |
DepartmentID | FK zur Abteilung |
JobLevel | Note/Band (L1-L8) |
JobTitle | Aktuelle Berufsbezeichnung |
ManagerID | FK an Mitarbeiter (Manager) |
LocationID | FK zum Standort |
HireDate | Ursprüngliches Mietdatum |
TerminationDate | Kündigungsdatum (null, wenn aktiv) |
TerminationReason | Freiwillig, unfreiwillig, Ruhestand usw. |
BaseSalary | Monatliches Grundgehalt |
FullTimeEquivalent | 1,0 für FT, 0,5 für PT |
Gender | M/W/Nicht-binär (anonymisiert für kleine Gruppen) |
AgeGroup | Aggregierte Altersgruppe (kein Rohalter) |
Ethnicity | Selbstberichtete ethnische Gruppe |
TenureMonths | Beschäftigungsmonate zum Snapshot-Datum |
Hiring_Events (eine Zeile pro Einstellung):
HireID,EmployeeID,ApplicationDate,OfferDate,AcceptDate,StartDate,DepartmentID,SourceChannel,HiringManagerID,JobRequisitionID
Absence_Records (eine Zeile pro Abwesenheitsereignis):
AbsenceID,EmployeeID,StartDate,EndDate,DaysAbsent,AbsenceType,Reason,ApprovalStatus
Performance_Reviews (eine Zeile pro Bewertung):
ReviewID,EmployeeID,ReviewDate,PerformanceRating,ManagerID
Training_Completions (eine Zeile pro Training):
TrainingID,EmployeeID,CompletionDate,ProgramName,HoursCompleted
Personalbestandsanalyse
Berechnung des Personalbestands zu einem bestimmten Zeitpunkt
Bei der Mitarbeiterzahl handelt es sich um eine Momentaufnahme (wie viele Mitarbeiter zu einem bestimmten Zeitpunkt vorhanden sind), nicht um eine Summe. Dies erfordert eine spezielle DAX-Behandlung:
// Headcount at any selected date
Headcount =
CALCULATE(
COUNTROWS(Employee_Snapshot),
Employee_Snapshot[Status] = "Active",
// Use the latest available snapshot for the selected period
Employee_Snapshot[SnapshotDate] = MAX(Employee_Snapshot[SnapshotDate])
)
// FTE-adjusted Headcount
FTE Headcount =
CALCULATE(
SUMX(
FILTER(Employee_Snapshot, Employee_Snapshot[Status] = "Active"),
Employee_Snapshot[FullTimeEquivalent]
),
Employee_Snapshot[SnapshotDate] = MAX(Employee_Snapshot[SnapshotDate])
)
// Headcount by Department (for matrix/bar chart)
Dept Headcount =
CALCULATE(
[Headcount],
ALLEXCEPT(Employee_Snapshot, Employee_Snapshot[DepartmentID])
)
// Headcount growth (vs prior month)
Headcount MoM Change =
[Headcount] -
CALCULATE(
[Headcount],
DATEADD(Date[Date], -1, MONTH)
)
// Headcount trend (for sparkline or line chart)
Headcount Trend =
CALCULATE(
[Headcount],
REMOVEFILTERS(Date[Month])
)
Fluktuationsratenanalyse
Der Umsatz ist die HR-Kennzahl, die am häufigsten verfolgt und am häufigsten falsch berechnet wird. Die richtige Formel verwendet die durchschnittliche Mitarbeiterzahl als Nenner (nicht die Anfangs- oder Endmitarbeiterzahl).
Umsatz-KPIs
// Total Terminations in Period
Terminations =
CALCULATE(
COUNTROWS(Employee_Snapshot),
Employee_Snapshot[Status] = "Terminated",
Employee_Snapshot[TerminationDate] >= MIN(Date[Date]),
Employee_Snapshot[TerminationDate] <= MAX(Date[Date])
)
// Voluntary Terminations (resigned)
Voluntary Terminations =
CALCULATE(
[Terminations],
Employee_Snapshot[TerminationReason] = "Voluntary"
)
// Involuntary Terminations (laid off, fired)
Involuntary Terminations =
CALCULATE(
[Terminations],
Employee_Snapshot[TerminationReason] = "Involuntary"
)
// Average Headcount (for turnover denominator)
Avg Headcount =
AVERAGEX(
VALUES(Date[Month]),
[Headcount]
)
// Annualized Turnover Rate
Turnover Rate =
DIVIDE(
[Terminations],
[Avg Headcount],
0
) * 12 -- Annualize if showing monthly data
// Voluntary Turnover Rate
Voluntary Turnover Rate =
DIVIDE([Voluntary Terminations], [Avg Headcount], 0) * 12
// Regrettable Turnover (voluntary + high performers)
Regrettable Turnover =
CALCULATE(
[Voluntary Terminations],
RELATED(Performance_Reviews[PerformanceRating]) >= 4 -- High performers
)
// Retention Rate
Retention Rate = 1 - [Turnover Rate]
// New Hire Survival Rate (% of new hires still employed after 90 days)
90 Day Survival Rate =
DIVIDE(
CALCULATE(
COUNTROWS(Hiring_Events),
DATEDIFF(Hiring_Events[StartDate], TODAY(), DAY) >= 90,
RELATED(Employee_Snapshot[Status]) = "Active"
),
CALCULATE(
COUNTROWS(Hiring_Events),
DATEDIFF(Hiring_Events[StartDate], TODAY(), DAY) >= 90
),
0
)
Kennzahlen zu Diversität, Gerechtigkeit und Inklusion
Datenschutzbewusste DEI-Analyse
DEI-Analysen müssen mit Datenschutzrichtlinien implementiert werden – zeigen Sie niemals Daten auf Einzelebene nach sensiblen Attributen an und unterdrücken Sie Daten für Gruppen, die kleiner als ein konfigurierbares Minimum sind (normalerweise 5–10 Mitarbeiter).
// Gender ratio (with suppression for small groups)
Gender Ratio Female =
VAR FemaleCount = CALCULATE([Headcount], Employee_Snapshot[Gender] = "Female")
VAR TotalCount = [Headcount]
RETURN
IF(TotalCount >= 10, DIVIDE(FemaleCount, TotalCount, 0), BLANK())
// Pay equity ratio (female to male)
Gender Pay Ratio =
VAR FemalePay = CALCULATE(
AVERAGE(Employee_Snapshot[BaseSalary]),
Employee_Snapshot[Gender] = "Female"
)
VAR MalePay = CALCULATE(
AVERAGE(Employee_Snapshot[BaseSalary]),
Employee_Snapshot[Gender] = "Male"
)
RETURN DIVIDE(FemalePay, MalePay, 0)
// Leadership diversity (% of senior roles filled by underrepresented groups)
Leadership Diversity % =
DIVIDE(
CALCULATE(
[Headcount],
Employee_Snapshot[JobLevel] IN {"L6","L7","L8"},
Employee_Snapshot[Gender] = "Female"
),
CALCULATE(
[Headcount],
Employee_Snapshot[JobLevel] IN {"L6","L7","L8"}
),
0
)
DEI-Dashboard-KPIs
| KPI | Formel | Ziel |
|---|---|---|
| Geschlechtergleichgewicht | Anteil weiblicher Mitarbeiter am gesamten Personalbestand | 50 % ± 5 % |
| Geschlechtsspezifisches Lohngefälle | Durchschnittliches Gehalt für Frauen / Durchschnittliches Gehalt für Männer | > 97 % |
| Führungsvielfalt | Unterrepräsentierte Gruppen in Führungspositionen | > 30 % |
| Vielfältige Einstellungsquote | Diverse Einstellungen / Gesamteinstellungen | > 40 % |
| Förderungskapital | Beförderungsquote nach Geschlecht/ethnischer Zugehörigkeit | ± 2 % zwischen den Gruppen |
Mitarbeiterlebenszyklusanalyse
Time-to-Hire
// Average days from job posting to offer acceptance
Avg Time to Hire =
AVERAGEX(
Hiring_Events,
DATEDIFF(
Hiring_Events[ApplicationDate],
Hiring_Events[AcceptDate],
DAY
)
)
// Offer Acceptance Rate
Offer Acceptance Rate =
DIVIDE(
CALCULATE(COUNTROWS(Hiring_Events), Hiring_Events[AcceptDate] <> BLANK()),
CALCULATE(COUNTROWS(Hiring_Events), Hiring_Events[OfferDate] <> BLANK()),
0
)
// Source Channel Effectiveness (hired employees by source)
Source Hire Rate =
DIVIDE(
COUNTROWS(Hiring_Events),
CALCULATE(
COUNTROWS(Hiring_Events),
REMOVEFILTERS(Hiring_Events[SourceChannel])
),
0
)
Amtszeitverteilung
// Tenure bucket (for histogram)
Tenure Bucket =
SWITCH(TRUE(),
Employee_Snapshot[TenureMonths] < 3, "0-3 months",
Employee_Snapshot[TenureMonths] < 12, "3-12 months",
Employee_Snapshot[TenureMonths] < 24, "1-2 years",
Employee_Snapshot[TenureMonths] < 60, "2-5 years",
Employee_Snapshot[TenureMonths] < 120, "5-10 years",
"10+ years"
)
// Average Tenure at Separation
Avg Tenure at Separation =
AVERAGEX(
FILTER(Employee_Snapshot, Employee_Snapshot[Status] = "Terminated"),
Employee_Snapshot[TenureMonths]
)
Abwesenheitsanalyse
Abwesenheits-KPIs
// Absence Rate (% of working days lost)
Absence Rate =
DIVIDE(
SUM(Absence_Records[DaysAbsent]),
[Headcount] * NETWORKDAYS(MIN(Date[Date]), MAX(Date[Date])),
0
)
// Bradford Factor (frequency-weighted absence score)
// B = S² × D (S = absence episodes, D = total days)
Bradford Factor =
VAR Spells = COUNTROWS(Absence_Records)
VAR Days = SUM(Absence_Records[DaysAbsent])
RETURN Spells * Spells * Days
// Average Absence Days per Employee
Avg Absence Days =
DIVIDE(SUM(Absence_Records[DaysAbsent]), [Headcount], 0)
// Absence by Type (breakdown)
Medical Absence Days =
CALCULATE(
SUM(Absence_Records[DaysAbsent]),
Absence_Records[AbsenceType] = "Medical"
)
5-seitige HR-Dashboard-Architektur
Seite 1: Übersicht über die Belegschaft
- KPI-Karte zur Mitarbeiterzahl (aktuell im Vergleich zum Vorjahr)
- FTE-Mitarbeiterzahl (Ist vs. Ziel)
- Mitarbeiterzahl nach Abteilung (Balkendiagramm)
- Personalbestandstrend 12 Monate (Liniendiagramm)
- Neueinstellungen vs. Kündigungen (Schmetterlings-/Vergleichsbalkendiagramm)
- Geografische Karte der Mitarbeiterzahl
Seite 2: Umsatzanalyse
- Annualisierte Fluktuationsrate (Messwert im Vergleich zum Branchen-Benchmark)
- Freiwillig vs. unfreiwillig (Donut-Diagramm)
- Umsatz nach Abteilung (sortiertes Balkendiagramm, höchstes zuerst)
- Umsatz nach Tenure-Band (Histogramm)
- Umsatztrend 24 Monate (Liniendiagramm)
- Aufschlüsselung der Beendigungsgründe (Baumkarte)
Seite 3: Talentakquise
- Time-to-Hire-Trend (Liniendiagramm pro Monat)
- Angebotsannahmerate (KPI-Karte)
- Einstellungen nach Quellkanal (Balkendiagramm)
- Offene Stellenausschreibungen nach Abteilung (Tabelle)
- Einstellungstrichter (von der Bewerbung bis zum Start)
- Cost-per-Hire nach Abteilung
Seite 4: Vielfalt und Inklusion
- Geschlechterverhältnis nach Level (gestapeltes Balkendiagramm)
- Geschlechtsspezifisches Lohngefälle nach Abteilung (Balkendiagramm)
- Trend zur Diversity-Einstellungsquote (Liniendiagramm)
- Beförderungsrate nach Geschlecht (gruppierter Balken)
- Team-Diversity-Index nach Manager
Seite 5: Abwesenheit & Wohlbefinden
- Abwesenheitsrate nach Abteilung (Heatmap)
- Verteilung des Bradford-Faktors
- Abwesenheit nach Grund (Tortendiagramm)
- Abwesenheitstrend (12-Monats-Liniendiagramm)
- Streudiagramm der Korrelation zwischen Abwesenheit und Leistung
Häufig gestellte Fragen
Wie verbinde ich Power BI mit Workday oder SAP SuccessFactors?
Workday bietet ein Prism Analytics-Modul und eine REST-API, mit denen Power BI über den Web-Connector mithilfe der OAuth-Authentifizierung eine Verbindung herstellen kann. SAP SuccessFactors stellt OData-APIs für Mitarbeiterdaten bereit. Für beide Systeme lautet die empfohlene Architektur für große Unternehmen: HRIS → Fivetran- oder Talend-Pipeline → Snowflake/Azure Synapse → Power BI. Dadurch wird die analytische Ebene vom HRIS entkoppelt und Probleme mit der API-Ratenbegrenzung vermieden.
Wie schütze ich sensible Mitarbeiterdaten in Power BI?
Wenden Sie mehrere Schutzebenen an: Die Sicherheit auf Zeilenebene schränkt ein, welche Mitarbeiterdaten jeder Betrachter sieht (z. B. sehen Manager nur ihre direkten Untergebenen, HRBP sieht die ihnen zugewiesenen Geschäftseinheiten). Wenden Sie Microsoft Information Protection-Vertraulichkeitsbezeichnungen auf Datensätze an, die personenbezogene Daten enthalten. Zeigen Sie Gehaltsdaten niemals auf der Ebene einzelner Mitarbeiter in gemeinsamen Dashboards an. Unterdrücken Sie für Diversitätsanalysen Metriken für Gruppen mit weniger als 10 Mitarbeitern. Stellen Sie sicher, dass die Datenschutzrichtlinie Ihrer Organisation die Verwendung von People Analytics ausdrücklich zulässt.
Was ist der Unterschied zwischen Mitarbeiterzahl und FTE?
Beim Headcount werden die Mitarbeiter unabhängig von ihrer Arbeitszeit gezählt (ein Teilzeitmitarbeiter zählt als 1). FTE (Vollzeitäquivalent) gewichtet nach Arbeitsstunden – ein 50 % Teilzeitbeschäftigter zählt als 0,5 FTE. Verwenden Sie die Mitarbeiterzahl für absolute Mitarbeiterzahlen (z. B. „Wir haben 500 Mitarbeiter“). Verwenden Sie FTE für die Kapazitätsplanung und Kostenmodellierung (z. B. „Wir haben eine Kapazität von 430 FTE“). Beide Maßnahmen sind wichtig und dienen unterschiedlichen Zwecken.
Wie berechne ich die Fluktuationsrate richtig?
Fluktuationsrate = (Anzahl der Trennungen / durchschnittliche Mitarbeiterzahl) × 100. Der Schlüssel ist der Nenner – verwenden Sie den Durchschnitt der Anfangs- und Endmitarbeiterzahl für den Zeitraum, nicht nur die Endmitarbeiterzahl. Um den rollierenden 12-Monats-Umsatz zu ermitteln, addieren Sie die Trennungen der letzten 12 Monate und dividieren Sie sie durch die durchschnittliche Mitarbeiterzahl der letzten 12 Monate. Viele Unternehmen verwenden fälschlicherweise die endgültige Mitarbeiterzahl, was den Umsatz in wachsenden Unternehmen in die Höhe treibt.
Kann Power BI das Fluktuationsrisiko für einzelne Mitarbeiter vorhersagen?
Mit Azure Machine Learning-Integration ja. Erstellen Sie in Azure ML ein Fluktuationsvorhersagemodell unter Verwendung historischer Funktionen (Beschäftigung, Leistungsbewertung, Engagement-Score, Datum der letzten Beförderung, Gehalt im Vergleich zum Markt, Managerbewertung) und geben Sie für jeden aktuellen Mitarbeiter einen Fluktuationswahrscheinlichkeitswert aus. Verbinden Sie diese Bewertung mit Power BI und zeigen Sie sie in einem Manager-Dashboard an, das das Abwanderungsrisiko ihres Teams zeigt – was proaktive Gespräche über die Mitarbeiterbindung ermöglicht, bevor Mitarbeiter kündigen.
Nächste Schritte
HR-Analysen in Power BI ermöglichen Personalleitern die gleiche datengesteuerte Entscheidungsfindung, die Finanz- und Vertriebsteams seit Jahren nutzen. Wenn Sie wissen, wer aus welchen Teams ausscheidet, warum und mit welcher Amtszeit, können Sie in der Personalabteilung früher eingreifen und die Talente behalten, die am wichtigsten sind.
Das Power BI-Team von ECOSIRE erstellt komplette HR-Analyseplattformen – vom HRIS-Datenpipeline-Design bis hin zu interaktiven People Analytics-Dashboards mit entsprechenden Datenschutzkontrollen und rollenbasiertem Zugriff.
Entdecken Sie unsere Power BI-Dashboard-Entwicklungsdienste, um unseren HR-Analytics-Ansatz zu verstehen, oder kontaktieren Sie unser Team, um Ihre Workforce-Analytics-Anforderungen und Datenquellen zu besprechen.
Geschrieben von
ECOSIRE Research and Development Team
Entwicklung von Enterprise-Digitalprodukten bei ECOSIRE. Einblicke in Odoo-Integrationen, E-Commerce-Automatisierung und KI-gestützte Geschäftslösungen.
Verwandte Artikel
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
The Future of Work: AI-Augmented Workforce in 2026-2030
A grounded analysis of how AI is reshaping work from 2026-2030—what jobs change, what skills matter, how organizations adapt, and what workers and leaders should do now.