Power BI'da İK Analitik Kontrol Paneli: Workforce Insights
İnsan analitiği, kurumsal iş zekasının en hızlı büyüyen uygulamasıdır ve bunun iyi bir nedeni vardır. Olgun İK analitiği programlarına sahip kuruluşlar, minimum düzeyde insan verisi kapasitesine sahip şirketlere (Deloitte Human Capital Trends) kıyasla %82 daha yüksek üç yıllık ortalama kâr elde ediyor. Ancak çoğu İK ekibi hâlâ çalışan sayısını Excel e-tablolarında izliyor ve ciroyu Google E-Tablolar'da manuel olarak hesaplıyor.
Power BI, İK liderlerine finans ve satış ekiplerinin yıllardır sahip olduğu analitik derinliğin aynısını sağlar: gerçek zamanlı personel sayısı görünürlüğü, otomatik ciro hesaplamaları, çeşitlilik analitiği ve işe alımdan işten ayrılmaya kadar tüm çalışan yolculuğu boyunca çalışan yaşam döngüsü takibi.
Bu kılavuz, Power BI'da veri modelini, DAX formülüyle her kritik İK KPI'sini ve gerçek iş gücü kararlarını yönlendiren pano sayfalarını kapsayan eksiksiz bir İK analiz platformu oluşturur.
Önemli Çıkarımlar
- İK analitiği, geçmiş personel sayısı için yavaş yavaş değişen bir boyut (SCD) yaklaşımı gerektirir
- Devir oranı hesaplaması, gönüllü ve gönülsüz ayrılmaları birbirinden ayırmalıdır
- Çeşitlilik kontrol panelleri dikkatli bir gizlilik tasarımı gerektirir; toplu, uygunsuz durumlarda asla bireysel düzeyde değil
- Çalışan yaşam döngüsü analizi işe alım süresini, üretkenlik süresini ve elde tutma eğrilerini izler
- Devamsızlık analitiği (Bradford Faktörü, devamsızlık sıklığı) bordro verileriyle entegre olur
- Kişi sayısına ilişkin DAX ölçümleri anlıktır (toplanmaz) — özel hesaplama modelleri gerektirir
- HRIS sistemlerinin (Workday, SAP SuccessFactors, BambooHR) tümünde Power BI bağlayıcıları bulunur
- Satır düzeyinde güvenlik, İK verilerini yetkili İK iş ortakları ve yöneticileriyle sınırlamalıdır
İK Analitiği için Veri Modeli
Temel İK Tabloları
Employee_Snapshot (yavaş yavaş değişiyor, çalışan başına ayda bir satır):
| Sütun | Açıklama |
|---|---|
| KOD0 | Çalışan tanımlayıcı |
| KOD0 | Anlık görüntünün ay sonu tarihi |
| KOD0 | Aktif, İzinli, Feshedilmiş |
| KOD0 | FK'den Bölüme |
| KOD0 | Derece/Bant (L1-L8) |
| KOD0 | Mevcut iş unvanı |
| KOD0 | FK'dan Çalışana (yönetici) |
| KOD0 | FK'dan Konum'a |
| KOD0 | Orijinal işe alım tarihi |
| KOD0 | Fesih tarihi (etkinse boş) |
| KOD0 | Gönüllü, Gönülsüz, Emeklilik vb. |
| KOD0 | Aylık baz maaş |
| KOD0 | FT için 1,0, PT için 0,5 |
| KOD0 | M/F/İkili olmayan (küçük gruplar için anonimleştirilmiştir) |
| KOD0 | Toplu yaş aralığı (ham yaş değil) |
| KOD0 | Kendisinin bildirdiği etnik grup |
| KOD0 | Anlık görüntü tarihinde kullanılan aylar |
Hiring_Events (işe alma başına bir satır):
- KOD0, KOD1, KOD2, KOD3, KOD4, KOD5, KOD6, KOD7, KOD8, KOD9
Absence_Records (yokluk olayı başına bir satır):
- KOD0, KOD1, KOD2, KOD3, KOD4, KOD5, KOD6, KOD7
Performance_Reviews (inceleme başına bir satır):
- KOD0, KOD1, KOD2, KOD3, KOD4
Training_Completions (eğitim başına bir satır):
- KOD0, KOD1, KOD2, KOD3, KOD4
Çalışan Sayısı Analizi
Zaman İçinde Çalışan Sayısı Hesaplaması
Çalışan sayısı, bir toplam değil, anlık bir ölçümdür (belirli bir zamanda kaç çalışanın mevcut olduğu). Bu, özel DAX işleme gerektirir:
// 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])
)
Devir Oranı Analizi
Ciro, en çok izlenen İK ölçümüdür ve en sık yanlış hesaplanandır. Doğru formül, payda olarak ortalama çalışan sayısını kullanır (başlangıç veya bitiş kişi sayısı değil).
Ciro KPI'ları
// 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
)
Çeşitlilik, Eşitlik ve Katılım Metrikleri
Gizliliğe Duyarlı DEI Analitiği
DEI analitiği gizlilik korumalarıyla uygulanmalıdır; bireysel düzeydeki verileri asla hassas niteliklere göre görüntülemeyin ve yapılandırılabilir minimum değerden daha küçük gruplara (genellikle 5-10 çalışan) ait verileri bastırmayın.
// 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 Kontrol Paneli KPI'ları
| KPI | Formül | Hedef |
|---|---|---|
| Cinsiyet Dengesi | Toplam çalışan sayısının kadın yüzdesi | %50 ± %5 |
| Cinsiyet Ücret Farkı | Kadınların ortalama maaşı / Erkeklerin ortalama maaşı | > %97 |
| Liderlik Çeşitliliği | Üst düzey rollerde yeterince temsil edilmeyen gruplar | > %30 |
| Çeşitli İşe Alma Oranı | Çeşitli işe alımlar / toplam işe alımlar | > %40 |
| Promosyon Sermayesi | Cinsiyete/etnik kökene göre terfi oranı | gruplar arasında ±%2 |
Çalışan Yaşam Döngüsü Analizi
İşe Alma Süresi
// 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
)
Görev Süresi Dağılımı
// 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]
)
Devamsızlık Analizi
Devamsızlık KPI'ları
// 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 Sayfalık İK Kontrol Paneli Mimarisi
Sayfa 1: İşgücüne Genel Bakış
- Çalışan sayısı KPI kartı (mevcut ve önceki yıl karşılaştırması)
- FTE Çalışan Sayısı (gerçek ve hedef)
- Departmana göre personel sayısı (çubuk grafik)
- 12 aylık çalışan sayısı eğilimi (çizgi grafik)
- Yeni İşe Alınanlar ve İşten Çıkarılanlar (kelebek/karşılaştırma çubuk grafiği)
- Coğrafi kişi sayısı haritası
Sayfa 2: Ciro Analizi
- Yıllık Ciro Oranı (gösterge ve sektör karşılaştırması)
- Gönüllü ve Gönülsüz (halka şeması)
- Departmana göre Ciro (sıralanmış çubuk grafik, en yüksek önce)
- Görev Süresi Bandına Göre Ciro (histogram)
- 24 aylık ciro eğilimi (çizgi grafik)
- Çıkış nedeni dökümü (ağaç haritası)
Sayfa 3: Yetenek Kazanımı
- İşe Alma Süresi trendi (ay bazında çizgi grafik)
- Teklif Kabul Oranı (KPI kartı)
- Kaynak Kanala göre işe alımlar (çubuk grafik)
- Departmanlara Göre Açık Talepler (tablo)
- İşe alma hunisi (başvurulardan başlangıçlara kadar)
- Departmana göre İşe Alma Maliyeti
Sayfa 4: Çeşitlilik ve Katılım
- Düzeylere göre cinsiyet dengesi (yığılmış çubuk grafik)
- Departmana göre cinsiyete dayalı ücret farkı (çubuk grafik)
- Çeşitlilik işe alım oranı eğilimi (çizgi grafik)
- Cinsiyete göre terfi oranı (gruplandırılmış çubuk)
- Yöneticiye göre takım çeşitliliği endeksi
Sayfa 5: Devamsızlık ve Refah
- Bölüme göre devamsızlık oranı (ısı haritası)
- Bradford Faktör dağılımı
- Sebebe göre devamsızlık (pasta grafiği)
- Devamsızlık eğilimi (12 aylık çizgi grafik)
- Devamsızlık ve performans korelasyon dağılım grafiği
Sıkça Sorulan Sorular
How do I connect Power BI to Workday or SAP SuccessFactors?
Workday, Power BI'ın OAuth kimlik doğrulamasını kullanarak Web bağlayıcısı aracılığıyla bağlanabileceği bir Prism Analytics modülü ve REST API sağlar. SAP SuccessFactors, çalışan verileri için OData API'lerini kullanıma sunuyor. Her iki sistem için de büyük kuruluşlara yönelik önerilen mimari şu şekildedir: HRIS → Fivetran veya Talend işlem hattı → Snowflake/Azure Synapse → Power BI. Bu, analitik katmanı HRIS'ten ayırır ve API hız sınırı sorunlarını önler.
Power BI'da hassas çalışan verilerini nasıl korurum?
Birden fazla koruma katmanı uygulayın: Satır düzeyinde güvenlik, her görüntüleyen kişinin hangi çalışan verilerini göreceğini kısıtlar (örneğin, yöneticiler yalnızca doğrudan raporlarını görür, HRBP ise kendilerine atanmış iş birimlerini görür). Kişisel verileri içeren veri kümelerine Microsoft Bilgi Koruması duyarlılık etiketlerini uygulayın. Maaş verilerini hiçbir zaman paylaşılan kontrol panellerinde bireysel çalışan düzeyinde göstermeyin. Çeşitlilik analitiği için 10 çalışandan küçük gruplara yönelik ölçümleri bastırın. Kuruluşunuzun veri gizliliği politikasının, Kişi Analizi kullanımına açıkça izin verdiğinden emin olun.
Çalışan sayısı ile FTE arasındaki fark nedir?
Çalışan sayısı, çalışanları çalışma saatlerine bakılmaksızın sayar (yarı zamanlı çalışan 1 olarak sayılır). FTE (Tam Zamanlı Eşdeğer) çalışma saatlerine göre ağırlıklandırılır — %50 yarı zamanlı çalışan 0,5 FTE olarak sayılır. Mutlak çalışan sayıları için personel sayısını kullanın (örneğin, "500 çalışanımız var"). Kapasite planlama ve maliyet modelleme için FTE'yi kullanın (örneğin, "430 FTE değerinde kapasitemiz var"). Her iki önlem de önemlidir ve farklı amaçlara hizmet eder.
Devir oranını doğru şekilde nasıl hesaplarım?
Devir oranı = (Ayrılma sayısı / Ortalama personel sayısı) × 100. Önemli olan paydadır; yalnızca dönem sonu personel sayısını değil, dönemin başlangıç ve bitiş personel sayısının ortalamasını kullanın. 12 aylık ciro için, son 12 aylık ayrılıkları toplayın ve 12 aylık ortalama personel sayısına bölün. Pek çok kuruluş, büyüyen kuruluşlarda ciroyu artıran, biten personel sayısını yanlış kullanıyor.
Power BI bireysel çalışanlar için tahmini yıpranma riskini gösterebilir mi?
Azure Machine Learning entegrasyonuyla evet. Geçmiş özellikleri (görev süresi, performans puanı, katılım puanı, son terfi tarihi, maaş ve pazar, yönetici puanı) kullanarak Azure ML'de bir yıpranma tahmin modeli oluşturun ve mevcut her çalışan için bir yıpranma olasılık puanı çıktısı alın. Bu puanı Power BI'a bağlayın ve ekibinin kaçma riskini gösteren bir yönetici kontrol panelinde görüntüleyin; böylece çalışanlar istifa etmeden önce proaktif elde tutma görüşmelerine olanak tanıyın.
Sonraki Adımlar
Power BI'daki İK analitiği, liderlere finans ve satış ekiplerinin yıllardır sahip olduğu aynı veriye dayalı karar alma olanağını sağlar. Kimin, neden, hangi takımlardan ve hangi görev süresiyle ayrıldığını anlamak, İK'ya daha erken müdahale etme ve en önemli yetenekleri elde tutma içgörüsü sağlar.
ECOSIRE'ın Power BI ekibi, HRIS veri hattı tasarımından uygun gizlilik denetimleri ve rol tabanlı erişime sahip etkileşimli Kişi Analizi panolarına kadar eksiksiz İK analiz platformları oluşturur.
İK analitiği yaklaşımımızı anlamak için Power BI kontrol paneli geliştirme hizmetlerimizi keşfedin veya iş gücü analitiği gereksinimlerinizi ve veri kaynaklarınızı tartışmak için ekibimizle iletişime geçin.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
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.