Ana içeriğe geç
Kesit SQL
Orta · İK Analitiği

Devamsızlık ve izin analitiği: Bradford faktörü ve Pazartesi etkisi

İzin türlerine göre gün sayıları, sık ve kısa devamsızlığı öne çıkaran Bradford faktörü, haftanın gününe göre hastalık izinleri ve kullanılmayan yıllık izin.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Kısa ama sık devamsızlık

Bir yılda 10 gün hastalık izni iki biçimde olabilir: tek seferde 10 gün (ameliyat) ya da 10 ayrı 1 günlük izin. İkincisi işin akışını çok daha fazla bozar. Bradford faktörü bunu ölçer: B = S² × D; S izin sayısı (kaç kez), D toplam gün.

ÖrüntüSDB
1 × 10 gün11010
5 × 2 gün510250
10 × 1 gün10101.000
SELECT emp_id, COUNT(*) AS s, SUM(days) AS d, COUNT(*) * COUNT(*) * SUM(days) AS bradford
FROM ik_leaves
WHERE leave_type = 'hastalık' AND start_date >= '2024-01-01'
GROUP BY emp_id
ORDER BY bradford DESC
LIMIT 10;
DikkatBradford faktörü bir konuşma başlatmak içindir, otomatik yaptırım için değil. Kronik hastalık ya da engellilik durumları ayrıca ele alınmalıdır.

Haftanın günü

Hastalık izinlerinin Pazartesi günleri belirgin biçimde yoğunlaşması yaygın bir örüntüdür; hafta sonunu uzatma eğilimine işaret edebilir. SQLite’ta strftime('%w', tarih) pazar için 0, pazartesi için 1 döndürür.

Derinleş: Bradford faktörünü yorumlamak ve kayıp zaman oranı

Bradford faktörü B = S² × D formülüyle sıklığı (S) kareleyerek cezalandırır. Toplam gün sayısı aynı olan iki çalışan, izinlerini kaç parçada kullandıklarına göre çok farklı puan alır. 2024'te toplam 8 gün hastalık izni kullanan çalışanlara bakalım:

WITH h AS (
  SELECT emp_id, COUNT(*) AS s, SUM(days) AS d
  FROM ik_leaves
  WHERE leave_type = 'hastalık'
    AND start_date >= '2024-01-01' AND start_date < '2025-01-01'
  GROUP BY emp_id
)
SELECT s AS izin_sayisi, COUNT(*) AS kisi, MIN(s * s * d) AS bradford
FROM h
WHERE d = 8
GROUP BY s
ORDER BY s;

Aynı 8 gün, 2 parçada kullanıldığında B = 32, 6 parçada kullanıldığında B = 288 olur. İşin akışı açısından mantıklıdır: habersiz tek günlük yokluklar planlamayı uzun bir rapordan çok daha fazla bozar.

Eşikler bir politika kararıdır

Şirketler genellikle bantlar tanımlar (ör. 0–49 izleme yok, 50–199 sözlü görüşme, 200–499 yazılı görüşme, 500+ İK ile görüşme). Bu sayılar evrensel değildir. Analistin görevi her bantta kaç kişinin olduğunu göstermektir; eşiği yönetim belirler. Pusula İK'da 2024'te hastalık izni olan 1.234 çalışanın 11'i 500'ün üzerindedir.

Kayıp zaman oranı

Bölümleri karşılaştırmak için kişi sayısından bağımsız bir oran gerekir: kayıp zaman oranı = devamsızlık günü ÷ (çalışan × planlanan iş günü). Yıllık yaklaşık 250 iş günü varsayımıyla Çağrı Merkezi'nde bu oran %1,8'dir, Finans'ta %0,6. Fark tek başına bir yargı değildir: vardiyalı ve müşteriyle yüz yüze işlerde hastalık izni tüm sektörlerde daha yüksektir.

HataSonuçDoğrusu
Paydada yalnızca izin kullananlarOrtalama şişerLEFT JOIN, izinsiz çalışan 0 sayılır
Yıl içinde gelen ve ayrılanlar tam yıl sayılırOran düşük çıkarYıl boyunca çalışanları al ya da çalışılan günle ağırlıklandır
Takvim günü ile iş günü karışırHafta sonuna denk gelen izinler sorun olurTanımı yaz (bu veride days iş günüdür)
Bradford'u otomatik yaptırım için kullanmakKronik hastalık ve engellilik durumlarında haksızlıkKonuşma başlatmak için kullan
Haftanın günüSQLite'ta strftime('%w', start_date) haftanın gününü verir (1 = Pazartesi). Bu veride hastalık izinlerinin yaklaşık 2.200'ü Pazartesi başlıyor; diğer günlerin her biri 1.130–1.210 arasında. Diğer SQL türlerinde bu hesap farklı fonksiyonlarla yapılır (SQL Server DATEPART(weekday, …), PostgreSQL EXTRACT(DOW FROM …)).
Alıştırmalara geç (7)