Tableau de bord d'analyse RH dans Power BI : Workforce Insights
L’analyse des personnes est l’application de business intelligence qui connaît la croissance la plus rapide dans l’entreprise – et pour cause. Les organisations dotées de programmes d'analyse RH matures ont un bénéfice moyen sur trois ans 82 % plus élevé que les entreprises disposant de capacités minimales en matière de données personnelles (Deloitte Human Capital Trends). Pourtant, la plupart des équipes RH suivent toujours les effectifs dans des feuilles de calcul Excel et calculent le chiffre d'affaires manuellement dans Google Sheets.
Power BI offre aux responsables RH la même profondeur d'analyse dont disposent les équipes financières et commerciales depuis des années : visibilité des effectifs en temps réel, calculs automatisés du chiffre d'affaires, analyses de la diversité et suivi du cycle de vie des employés tout au long du parcours des employés, de l'embauche au départ.
Ce guide crée une plate-forme complète d'analyse RH dans Power BI, couvrant le modèle de données, chaque KPI RH critique avec sa formule DAX et les pages de tableau de bord qui pilotent les décisions réelles du personnel.
Points clés à retenir
- L'analyse RH nécessite une approche de dimension à évolution lente (SCD) pour l'effectif historique
- Le calcul du taux de turnover doit distinguer les départs volontaires des départs involontaires
- Les tableaux de bord sur la diversité nécessitent une conception minutieuse en matière de confidentialité – agrégés, jamais au niveau individuel lorsque cela est inapproprié
- L'analyse du cycle de vie des employés suit les courbes de temps d'embauche, de productivité et de rétention
- L'analyse des absences (Bradford Factor, fréquence d'absence) s'intègre aux données de paie - Les mesures DAX pour les effectifs sont ponctuelles (non additionnées) – nécessitent des modèles de calcul spéciaux
- Les systèmes SIRH (Workday, SAP SuccessFactors, BambooHR) disposent tous de connecteurs Power BI
- La sécurité au niveau des lignes doit limiter les données RH aux partenaires commerciaux et aux responsables RH autorisés.
Modèle de données pour l'analyse RH
Tableaux RH de base
Employee_Snapshot (changement lent, une ligne par employé et par mois) :
| Colonne | Descriptif |
|---|---|
EmployeeID | Identifiant de l'employé |
SnapshotDate | Date de fin de mois de l'instantané |
Status | Actif, en congé, licencié |
DepartmentID | FK au département |
JobLevel | Niveau/bande (L1-L8) |
JobTitle | Titre du poste actuel |
ManagerID | FK à employé (manager) |
LocationID | FK à l'emplacement |
HireDate | Date d'embauche initiale |
TerminationDate | Date de résiliation (nul si actif) |
TerminationReason | Volontaire, involontaire, retraite, etc. |
BaseSalary | Salaire de base mensuel |
FullTimeEquivalent | 1,0 pour FT, 0,5 pour PT |
Gender | H/F/Non binaire (anonymisé pour petits groupes) |
AgeGroup | Tranche d'âge agrégée (et non âge brut) |
Ethnicity | Groupe ethnique autodéclaré |
TenureMonths | Mois d'emploi à la date de l'instantané |
Hiring_Events (une ligne par embauche) :
HireID,EmployeeID,ApplicationDate,OfferDate,AcceptDate,StartDate,DepartmentID,SourceChannel,HiringManagerID,JobRequisitionID
Absence_Records (une ligne par événement d'absence) :
AbsenceID,EmployeeID,StartDate,EndDate,DaysAbsent,AbsenceType,Reason,ApprovalStatus
Performance_Reviews (une ligne par avis) :
ReviewID,EmployeeID,ReviewDate,PerformanceRating,ManagerID
Training_Completions (une ligne par formation) :
TrainingID,EmployeeID,CompletionDate,ProgramName,HoursCompleted
Analyse des effectifs
Calcul de l'effectif à un moment précis
L'effectif est une mesure instantanée (combien d'employés existent à un moment donné), et non une somme. Cela nécessite une gestion DAX spéciale :
// 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])
)
Analyse du taux de rotation
Le turnover est la mesure RH la plus suivie et la plus souvent mal calculée. La formule correcte utilise l'effectif moyen comme dénominateur (et non l'effectif de début ou de fin).
KPI de chiffre d'affaires
// 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
)
Indicateurs de diversité, d'équité et d'inclusion
Analyse DEI respectueuse de la confidentialité
Les analyses DEI doivent être mises en œuvre avec des garde-fous en matière de confidentialité : n'affichez jamais les données au niveau individuel par attributs sensibles et supprimez les données pour les groupes inférieurs à un minimum configurable (généralement 5 à 10 employés).
// 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
)
KPI du tableau de bord DEI
| KPI | Formule | Cible |
|---|---|---|
| Équilibre entre les sexes | % de femmes dans l'effectif total | 50 % ± 5 % |
| Écart salarial entre hommes et femmes | Salaire moyen femme / Salaire moyen homme | > 97% |
| Diversité du leadership | Groupes sous-représentés dans les postes de direction | > 30% |
| Taux d'embauche diversifié | Embauches diverses / embauches totales | > 40% |
| Promotion Équité | Taux de promotion par sexe/origine ethnique | ± 2% entre groupes |
Analyse du cycle de vie des employés
Délai d'embauche
// 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
)
Répartition des mandats
// 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]
)
Analyse des absences
KPI d'absence
// 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"
)
Architecture du tableau de bord RH de 5 pages
Page 1 : Aperçu de l'effectif
- Carte KPI d'effectif (en cours par rapport à l'année précédente)
- Effectif ETP (réel par rapport à l'objectif)
- Effectif par département (graphique à barres)
- Tendance des effectifs sur 12 mois (graphique linéaire)
- Nouvelles embauches et licenciements (graphique à barres papillon/comparaison)
- Carte géographique des effectifs
Page 2 : Analyse du CA
- Taux de turnover annualisé (jauge vs référence du secteur)
- Volontaire vs Involontaire (graphique en anneau)
- Chiffre d'affaires par département (graphique à barres trié, le plus élevé en premier)
- Chiffre d'affaires par Tenure Band (histogramme)
- Tendance du CA sur 24 mois (graphique linéaire)
- Répartition des motifs de sortie (treemap)
Page 3 : Acquisition de talents
- Tendance du temps d'embauche (graphique linéaire par mois)
- Taux d'acceptation des offres (carte KPI)
- Embauches par canal source (graphique à barres)
- Demandes ouvertes par département (tableau)
- Entonnoir de recrutement (des candidatures aux démarrages)
- Coût par location par département
Page 4 : Diversité et inclusion
- Équilibre entre les sexes par niveau (graphique à barres empilées)
- Écart salarial entre hommes et femmes par département (graphique à barres)
- Tendance du taux d'embauche pour la diversité (graphique linéaire)
- Taux de promotion par sexe (barre regroupée)
- Indice de diversité des équipes par manager
Page 5 : Absence & Bien-être
- Taux d'absence par département (heat map)
- Distribution du facteur Bradford
- Absence pour motif (camembert)
- Tendance des absences (graphique linéaire sur 12 mois)
- Nuage de points de corrélation entre l'absence et les performances
Questions fréquemment posées
Comment connecter Power BI à Workday ou SAP SuccessFactors ?
Workday fournit un module Prism Analytics et une API REST auxquels Power BI peut se connecter via le connecteur Web à l'aide de l'authentification OAuth. SAP SuccessFactors expose les API OData pour les données des employés. Pour les deux systèmes, l'architecture recommandée pour les grandes entreprises est : SIRH → Pipeline Fivetran ou Talend → Snowflake/Azure Synapse → Power BI. Cela dissocie la couche analytique du SIRH et évite les problèmes de limite de débit API.
Comment protéger les données sensibles des employés dans Power BI ?
Appliquez plusieurs niveaux de protection : la sécurité au niveau des lignes restreint les données des employés que chaque spectateur voit (par exemple, les responsables voient uniquement leurs subordonnés directs, les HRBP voient les unités commerciales qui leur sont attribuées). Appliquez des étiquettes de sensibilité Microsoft Information Protection aux ensembles de données contenant des données personnelles. N’affichez jamais les données salariales au niveau de chaque employé dans des tableaux de bord partagés. Pour l'analyse de la diversité, supprimez les mesures pour les groupes de moins de 10 employés. Assurez-vous que la politique de confidentialité des données de votre organisation autorise explicitement l’utilisation de People Analytics.
Quelle est la différence entre l'effectif et l'ETP ?
L'effectif compte les salariés quelle que soit leur durée de travail (un salarié à temps partiel compte pour 1). Pondérations ETP (équivalent temps plein) par heures de travail – un employé à 50 % à temps partiel compte pour 0,5 ETP. Utilisez l'effectif pour le nombre absolu d'employés (par exemple, « nous avons 500 employés »). Utilisez des ETP pour la planification des capacités et la modélisation des coûts (par exemple, « nous avons une capacité d'une valeur de 430 ETP »). Les deux mesures sont importantes et visent des objectifs différents.
Comment calculer correctement le taux de rotation ?
Taux de rotation = (Nombre de départs / Effectif moyen) × 100. La clé est le dénominateur : utilisez la moyenne des effectifs de début et de fin pour la période, pas seulement l'effectif de fin. Pour le chiffre d'affaires sur 12 mois glissants, additionnez les 12 derniers mois de départs et divisez par l'effectif moyen sur 12 mois. De nombreuses organisations utilisent à tort l’effectif final, ce qui gonfle le chiffre d’affaires dans les organisations en croissance.
Power BI peut-il prédire le risque d'attrition pour des employés individuels ?
Avec l’intégration d’Azure Machine Learning, oui. Créez un modèle de prédiction d'attrition dans Azure ML à l'aide de fonctionnalités historiques (ancienneté, évaluation des performances, score d'engagement, date de la dernière promotion, salaire par rapport au marché, note du manager) et générez un score de probabilité d'attrition pour chaque employé actuel. Connectez ce score à Power BI et affichez-le dans un tableau de bord du responsable indiquant le risque de fuite de son équipe, permettant ainsi des conversations proactives sur la rétention avant la démission des employés.
Prochaines étapes
L’analyse RH dans Power BI offre aux responsables du personnel la même prise de décision basée sur les données que celle dont disposent les équipes financières et commerciales depuis des années. Comprendre qui part, pourquoi, de quelles équipes et pour quel mandat donne aux RH la possibilité d'intervenir plus tôt et de retenir les talents qui comptent le plus.
L'équipe Power BI d'ECOSIRE crée des plateformes complètes d'analyse RH, depuis la conception de pipelines de données SIRH jusqu'aux tableaux de bord interactifs People Analytics avec des contrôles de confidentialité appropriés et un accès basé sur les rôles.
Découvrez nos services de développement de tableaux de bord Power BI pour comprendre notre approche d'analyse RH, ou contactez notre équipe pour discuter de vos besoins en matière d'analyse des effectifs et de vos sources de données.
Rédigé par
ECOSIRE Research and Development Team
Création de produits numériques de niveau entreprise chez ECOSIRE. Partage d'analyses sur les intégrations Odoo, l'automatisation e-commerce et les solutions d'entreprise propulsées par l'IA.
Articles connexes
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.